Нужны две таблицы с одинаковым именем - что не так с этим дизайном? - PullRequest
0 голосов
/ 25 января 2011

Я работаю над двумя проектами сайта одновременно. Однако два веб-сайта будут настолько взаимосвязаны, что будут использовать одну и ту же базу данных.

Для первого сайта, давайте просто назовем его автомобильным сайтом, я создал таблицу с именем «tag», которая содержит теги / метки / категории, которые присваиваются записям, очень похоже на систему тегов здесь, в SO. Теперь мне нужна еще одна таблица для хранения меток для другого типа записи, не связанной с автомобилями. Для примера, давайте просто скажем, что я хочу пометить одежду.

У меня уже есть таблица с именем car_tag, которая объединяет автомобили с тегами.

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

Есть предложения? Tag1 и Tag2? Я думаю, что позже мне может понадобиться еще больше тегов для другого, но связанного проекта на том же сайте.

Ответы [ 2 ]

3 голосов
/ 25 января 2011

Пока теги служат одной и той же семантической цели, я не вижу проблемы с объединением их в одну таблицу. Вам следует рассмотреть возможность добавления поля TagType / TagTypeId, чтобы явно указать, какой тип тега вы храните (автомобили, безымянный объект).

Просто помните, что у вас есть возможность разбить их на разные таблицы, если вам это нужно по соображениям производительности.

2 голосов
/ 25 января 2011

Согласитесь - они должны быть совершенно счастливы сидеть за одним столом.

На самом деле, если они представляют один и тот же объект / концепцию, было бы неправильно помещать их в отдельные таблицы.

Я бы также сказал, что вам не нужно «делить» теги каким-либо образом. Если есть red автомобилей и red одежды, то какой будет вред, если они оба ссылаются на один и тот же тег red? В конце концов, вам может понадобиться найти все, что имеет тег red. Никакого вреда.

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