База данных - хранить пользовательские переменные - типичный дизайн базы данных WordPress - PullRequest
3 голосов
/ 22 декабря 2011

В типичном WordPress сайте есть несколько таблиц, которые в конце названы с мета. В этих таблицах есть 2 столбца, один с именем «meta_key» и один с именем «meta_value». Там хранятся любые переменные.

Разве это не плохой дизайн? Каковы преимущества этого дизайна и каковы недостатки?

1 Ответ

4 голосов
/ 24 декабря 2011

Все зависит от внешнего плана - таблицы значений ключей - это еще один способ хранения данных, просто еще один способ мышления. Так же, как NoSQL.

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

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

Исходя из моего опыта, я пришел к выводу, что у реальных сущностей в проекте есть собственная таблица, а такие вещи, как данные конфигурации, могут быть помещены в одну высокую тонкую таблицу.

Хорошо быть ленивым, но не ленивым.

Еще одна вещь для размышления - наличие дополнительного столбца информации (кроме идентификатора, если вы его используете) для таблицы значений ключа. Назовите это сказать «отношения». Вот хорошее начало для такого рода мышления (не переживайте по этому поводу, потому что это глубокая кроличья нора со странными существами):

http://en.wikipedia.org/wiki/Resource_Description_Framework

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...