В настоящее время я разрабатываю расширение для базы данных "Bar Beer Drinkers" (которая часто используется для обучения базовым запросам SQL).
В рамках проекта я создал сущности, которые следуют шаблону "ISA", а именно:
«Пиво», «Еда» и «Прочие предметы» - все это «подклассы» «Предмета».
Другая вовлеченная сущность - это сущность Барс.
Между слитками и предметами У меня есть сущность отношений, которая называется "Продает".
Схемы для этих таблиц следующие:
Bar[ID(pk), Name, State, Address, Phone, Open, Close]
Beers[Name(pk), Manf]
Food[Name(pk), Manf]
OtherItems[Name(pk), Manf].
В моем нынешнем виде у меня нет таблицы с именем "Items".
Для таблицы Sells схема:
Sells[barID(fk), item(fk), price]
Я надеялся отобразить PK из всех трех таблиц в столбец "item" в продажах. Ака, я мог бы добавить в него название пива, название еды или другое название.
Похоже, что это не работает в MySQLWorkBench, так как не позволяет мне ссылаться на несколько внешних ключей на один и тот же столбец.
Моим потенциальным решением этой проблемы было что-то вроде:
Sells[barID{fk), beerItem(fk), foodItem(fk), otherItem(fk), price]
Однако это приведет к тому, что каждый кортеж будет иметь как минимум два нулевых значения. Это приемлемо? Каков предпочтительный способ включения отношения «ISA» в объект отношения для SQL?