Який правильний спосіб використання існуючих полів?


13

Я початківець Drupal. Я трохи розгублений щодо додавання полів до типів вмісту.

Випадок 1: Припустимо, якщо у мене є три типи вмісту Book, Article& White Paper. Я створив Authorsлексику, яка містить список усіх Авторів.

  1. Тепер, чи слід створити поле "Написане" (термін посилання на Авторів) для кожного типу вмісту або створити поле для одного типу вмісту та використовувати його в інших типах вмісту?

  2. Які переваги / недоліки обох методів?

  3. Що станеться, якщо я видаляю повторно використане поле з одного типу вмісту? Чи видаляється вона у всіх інших?

Випадок 2: Я переглядаю такі типи вмісту: (із заданими вимогами поля)

+--------------+----------------------+
| Content Type | Field Required       |
+--------------+----------------------+
| Book         | Year of publication  |
+--------------+----------------------+
| Presentation | Date of Presentation |
+--------------+----------------------+
| Article      | Date of Publication  |
+--------------+----------------------+
| Event        | Held On              |
+--------------+----------------------+

Що я повинен зробити? Чи слід створити одне поле для одного типу вмісту і використовувати його для всіх інших типів вмісту або створити поле для кожного типу вмісту?

Допоможіть мені зрозуміти, коли і як належним чином повторно використовувати існуючі поля.

Відповіді:


8

Чи слід створити поле "Написане" (термін посилання на Авторів) для кожного типу вмісту або створити поле для одного типу вмісту та використовувати його в інших типах вмісту?

Якщо вам потрібно зібрати однакову інформацію для різних типів вмісту, вам слід використовувати одне поле. Ваше поле "Написане" звучить як ідеальний випадок для цього. Якщо у вас були різні словники для ваших авторів, скажіть, "Автор книги", "Автор статті" тощо, ви хочете (і потрібно) використовувати окремі поля для кожного.

Які переваги / недоліки обох методів?

Одна перевага полягає в тому, що ви можете запитувати всі типи вмісту за одним полем. Тож якщо ви виявите, що хочете переглянути весь вміст, написаний одним автором, або навіть увесь вміст, написаний усіма авторами, створити подання для цього буде легко. Але це корисно лише, якщо вам це потрібно, очевидно. Я припускаю, що головний момент полягає в тому, що сам випадок використання поля фактично диктуватиме відносні переваги / недоліки будь-якого методу.

Крім того, кожного разу, коли ви створюєте поле, ви створюєте дві таблиці баз даних (одна для поточних даних, одна для даних ревізії). Можна сказати, «змішані» почуття щодо того, чи є цей спосіб зберігання найкращою ідеєю з точки зору продуктивності, і деякі люди вважають за краще зменшити кількість таблиць. Якщо ви приєднаєте наявне поле до іншого типу вмісту, для всіх них використовується однакова таблиця баз даних, так що це поле буде відмічено. Знову ж таки, це має сенс лише тоді, коли ваші дані можна розділити.

Що станеться, якщо я видаляю повторно використане поле з одного типу вмісту? Чи видаляється вона у всіх інших?

Поле буде видалено лише після того, як воно буде відменено від усіх типів вмісту. Дані, що належать до типу вмісту, від якого ви від'єднали поле, будуть переміщені в таблицю видалених даних та видаляються під час запуску кронів.

На випадок 2, і просто запитайте, задайте собі це ...

Маючи на увазі, що ви можете мати різні мітки для кожного екземпляра типу вмісту одного поля, чи дасть вам достатньо візуального (або керованого даними) сигналу, щоб повідомити про відмінності між даними?

Якщо так, використовуйте одне поле дати, щоб отримати переваги, згадані вище. Якщо ні, то для вашого дизайну даних має сенс мати окремі поля.

Все зводиться до того, що підходить для вашого конкретного веб-сайту, але, сподіваємось, вищесказане дасть вам певний шлях вперед.


Я цього не розумів:Keeping in mind that you can have different labels for each content type's instance of the same field, will that give you enough of a visual (or data-led) cue to let you know the differences between the data?
кігті

4
Я просто мав на увазі, що ви вирішите вибирати, виходячи з того, що вам потрібно робити зі своїми даними - беручи за приклад дату публікації та презентації, чи важливо для вас, якщо вони розділені? Чи потрібно фільтрувати вміст на основі цієї дати? Чи дасть це небажані результати, якщо ви використовуєте одне поле та отримуєте дані для всіх типів вмісту під час фільтрації в цьому полі? Це такі питання, які слід задавати собі. Це справді проблема дизайну даних, система сутності / поля Drupal - це лише шар абстракції. Якщо ви проектуєте це за межами Drupal, чи помістили б ви ці дані в ту саму таблицю?
Клайв
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.