0

Я проектирую свою структуру базы данных, и мне нужен совет: У меня есть изображения, которые могут быть выбраны из категорий, и другие могут быть загружены, и для каждого приятеля я должен сохранить, какое изображение было выбрано ...Дизайн базы данных для изображений

у меня есть несколько вариантов:

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

  2. Я могу поместить загруженные изображения и предопределенные изображения в две разные таблицы, но в этом случае, если мне нужно поместить идентификатор изображения, выбранного в таблице приятелей, я не смогу узнать, из какой таблицы был указан этот идентификатор (потому что идентификатор изображения является приращенным целым числом)

так как я могу это создать? и какой метод лучше и почему?

ответ

0

Я сделаю эти предположения:

  • У вас есть таблица с предопределенными изображениями. Каждое изображение имеет идентификатор.
  • Пользователь может загрузить свое собственное изображение. Загруженное изображение может использоваться только этим пользователем.
  • Каждый пользователь может загружать только одно изображение.

В этом случае, вы должны определить две колонки в вашей таблице друзей, изображение и ImageID. Определите значения по умолчанию для этих столбцов, NULL для image и 1 для imageID. Определите ограничение ссылочной целостности между imageID и таблицей предопределенных_изображений.

Ваша программа должна загрузить изображение, указанное в ImageID если изображение столбец NULL.

Например:

SELECT COALESCE(b.image, p.imagedata) 
FROM buddy b, predefined_images p 
WHERE b.imageID = p.ID 
Смежные вопросы