Ситуация
Я разрабатываю базу данных для проекта торгового центра. В этом торговом центре будет много поставщиков таких услуг, как развлечения, пешеходная площадка, магазин. Каждому из этих поставщиков необходимо будет показать свои продукты на веб-сайте.
Моя проблема здесь в том, чтобы выбрать параметры для хранения изображений каждого продукта (например, еда, одежда, фильмы) каждого поставщика услуг, а также изображений для поставщиков услуг и торгового центра. Каждая запись этих объектов (продуктов, поставщиков услуг или торгового центра) может иметь несколько изображений.
Одно из предложений - создать таблицы для этих объектов, и к каждой из этих таблиц будут прикреплены отдельные таблицы для хранения изображений.
Поскольку в таблицах изображений есть одинаковые поля, я чувствую, что могу объединить их в одну таблицу.
Итак, что является хорошей практикой в ситуации, когда несколько таблиц используют одни и те же поля, как это?
Мой нынешний подход
Я создаю 4 таблицы: Mall
, Movie
, ServiceProvider
и Image
. Каждая из первых трех таблиц имеет отношение Один ко многим с таблицей Image
.
Мой подход - иметь таблицу CommonKey
. Каждая из первых трех таблиц будет иметь столбец типа CommonKeyId (ссылка на Id
в таблице CommonKey
) (отношение один-один). Таблица Image
будет иметь отношение "один-много" с таблицей CommonKey
. Делая это, я думаю, я достигну отношения «один-много» между mall
, movie
, serviceprovider
и Image
. Схема должна быть такой:
Другой подход для меня - это создание столбца Type
для хранения типа изображения (например, торговый центр, фильм ...) и IdField
для хранения идентификаторов записей в других трех таблицах.
Интересно, какой метод будет лучше в этой ситуации, с соблюдением 3 шагов нормальной формы? Пожалуйста, посоветуйте, спасибо.
@Gilbert Le Blanc, Спасибо за комментарий. Я просто редактирую свой вопрос с учетом ситуации, с которой я столкнулся. Надеюсь, теперь стало понятнее. И диаграмма содержит только ключевые поля, так как я думаю, что другие поля представляют собой общую информацию, которая не связана с проблемами.
Мы тоже задаемся вопросом, поскольку понятия не имеем, какова реальная «ситуация». Ваша диаграмма в порядке. Кроме того, шесть столов - это не много. Если вам нужно управлять 500-600 столами, дайте нам знать.