#database #schema
Вопрос:
Я работаю над проектом, и мне нужна таблица, которая может обрабатывать различные типы данных в зависимости от типа.
Типом может быть ссылка, изображение, текст или набор цветов. Только один из этих 4 в каждой строке.
Было бы лучше создать родительскую таблицу, а затем по одной таблице для каждого типа? Или создайте одну таблицу с одним столбцом для каждого типа, оставив пустыми остальные три типа, которые «не используются».
Например, моя таблица называется «Идея».
Первое решение:
идеи
- ID
- Название
idea_линк
- idea_id
- Ссылка
idea_image
- idea_id
- путь к изображению
Второе Решение
идеи
- ID
- Имя
- Ссылка (может быть аннулирована)
- Изображение (может быть аннулировано)
- Текст (обнуляется)
Комментарии:
1. на самом деле это связано не с типом данных, а с отношениями. Во втором решении каждая идея не может иметь более одной ссылки, изображения или текста, в первом решении каждая идея может иметь несколько ссылок. Проверьте связи с базой данных, чтобы понять разницу. Проверьте, например: condor.depaul.edu/gandrus/240IT/accesspages/relationships.htm
2. Да, в этом случае каждая идея может иметь только одну ссылку (или) одно изображение (или) один «текст». Мой вопрос в том, как лучше всего справиться с этим «или».
3. На самом деле «лучшего» общего решения не существует. Зависит от того, чего вы хотите достичь. Если у вас есть отношение «один к одному», вы должны использовать второе решение, если у вас есть отношение «один ко многим», вы должны использовать первое.