2012-05-25 1 views
0

Моя проблема: у меня есть куча «объектов». Эти объекты могут иметь список слов длиной до 3 слов и также не могут иметь их. Для mysql у меня уже есть строка для каждого объекта, и я пытаюсь выяснить, как включить слова. Вот мои подходы:Изменение размера списка

1: У меня есть 3 дополнительных столбца для каждого слова. Это, хотя и оставляет пустые, redudant клетки, когда их нет 3 слова.

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

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

Рекомендации?

ответ

0

Я бы всегда ходил за №3 с помощью дополнительного стола. Это гарантирует в будущем, если вам нужно выполнить любой поиск «Word» с использованием SQL во всех объектах или изменить структуру, чтобы добавить больше слов или уменьшить слова, тогда не будет никаких икота. Кроме того, эти дополнительные запросы, как правило, представляют собой меньшую нагрузку для сервера РСУБД. Кроме того, для всех других вариантов также потребуется некоторая обработка с PHP (при условии, что это язык кодирования), который также будет потреблять некоторые циклы процессора. Но поскольку № 3 будет хорошо масштабироваться в будущем, я предпочту пойти с №3.

+0

Спасибо за перестраховка! :) – user1415803

0

номер # 3 с таблицей с именем слова (id_word, слово) и другие таблицы с именем object_words (id_object, id_word) из Корсики с типом InnoDB таблицы, чтобы быть уверенным в целостности