2013-03-20 3 views
1

Я, конечно же, не эксперт по Drupal, но я уже проработал и создал несколько баз данных, так что я озадачен структурой базы данных, которую третья группа работает над тем, что у меня был Sequel Pro'd, чтобы добавить какой-то манекен содержание. Я предполагаю, что структура не будет очевидна, если кто-то будет использовать внешний интерфейс Drupal, но у меня нет аккаунтов, просто ftp и ssh.Структура базы данных Drupal - эффективная/неэффективная?

Я был немного испуган, чтобы увидеть не одну таблицу я ожидал бы, скажем, организация, с колоннами для ID, имя, адрес электронной почты, почтовый индекс, и т.д. и т.п.

Вместо этого, есть таблица для каждого бита данных. То есть отдельная таблица для имени, адреса, электронной почты, почтового индекса и т. Д.

Это кажется, с логической точки зрения, удивительно неэффективным. Например, когда страница Организации загружается, каждый бит данных, которые загружаются для этой организации, вызывается из другой таблицы и агрегируется, а не путем вызова одной таблицы и всех данных, выведенных из одной строки.

Я не знаю (да, но ...) или это какая-то особенность структуры дБ, уникальная для Drupal?

+2

это модель EAV для вас .. сущность, атрибут, значение. великий в теории, ужасный в реализации. –

ответ

1

Да. Drupal хранит содержимое поля в отдельных таблицах, чтобы оно было максимально гибким (например, если вы хотите повторно использовать эти поля для других типов контента, кроме «организации» позже), он уже находится в таблице с несколькими соединениями. Компромисс - это производительность, которую Drupal компенсирует кешированием и такой (например, когда этот узел организации загружен, он кэширует его так, что если он снова загружается в запросе этой страницы, ему больше не нужно читать из этих таблиц, для пример). Поскольку это мощная CMS, которая позволяет создавать и перестраивать и реорганизовывать, как вы храните свой контент и поля, он сохраняет данные более гибко.

+0

Благодарим вас за понимание sceo, – Michael

+0

извините, для завершения этой мысли. Одна из проблем заключается в том, что из того, что я понимаю, нет кеширования без аутентификации. поэтому любые посетители, не прошедшие проверку подлинности, будут помещать то, что может быть чрезмерной нагрузкой на сервер. Примером сценария может быть объявление нового события, которое генерирует большой трафик просмотра. единственной причиной, по которой пользователь будет аутентифицироваться (войти в систему), будет rsvp. – Michael

Смежные вопросы