2011-12-22 2 views
3

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

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

+1

Смотрите это: http://stackoverflow.com/questions/ 4049159/alternatives-to-entity-attribute-value-eav –

+1

и это: http://stackoverflow.com/questions/7020377/database-design-eav-options –

+1

и это: http://en.wikipedia.org/ wiki/Entity-attribute-value_model –

ответ

4

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

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

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

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

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

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

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

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