Как обрабатывать различные типы данных для одной и той же строки в таблице?

#database #schema

Вопрос:

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

Типом может быть ссылка, изображение, текст или набор цветов. Только один из этих 4 в каждой строке.

Было бы лучше создать родительскую таблицу, а затем по одной таблице для каждого типа? Или создайте одну таблицу с одним столбцом для каждого типа, оставив пустыми остальные три типа, которые «не используются».

Например, моя таблица называется «Идея».

Первое решение:

идеи

  • ID
  • Название

idea_линк

  • idea_id
  • Ссылка

idea_image

  • idea_id
  • путь к изображению

Второе Решение

идеи

  • ID
  • Имя
  • Ссылка (может быть аннулирована)
  • Изображение (может быть аннулировано)
  • Текст (обнуляется)

Комментарии:

1. на самом деле это связано не с типом данных, а с отношениями. Во втором решении каждая идея не может иметь более одной ссылки, изображения или текста, в первом решении каждая идея может иметь несколько ссылок. Проверьте связи с базой данных, чтобы понять разницу. Проверьте, например: condor.depaul.edu/gandrus/240IT/accesspages/relationships.htm

2. Да, в этом случае каждая идея может иметь только одну ссылку (или) одно изображение (или) один «текст». Мой вопрос в том, как лучше всего справиться с этим «или».

3. На самом деле «лучшего» общего решения не существует. Зависит от того, чего вы хотите достичь. Если у вас есть отношение «один к одному», вы должны использовать второе решение, если у вас есть отношение «один ко многим», вы должны использовать первое.