Нормализация таблицы базы данных - PullRequest
1 голос
/ 03 февраля 2010

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

Ответы [ 2 ]

2 голосов
/ 03 февраля 2010

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

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

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

Пожалуйста, нормализуйте ваши данные.

2 голосов
/ 03 февраля 2010

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

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