Правильная структура БД MySQL
Я разрабатываю панель веб-администрирования для каталога местных ресторанов. Их старая система очень неуклюжа и не может расширяться, не модифицируя кучу кода.
Текущая структура БД выглядит следующим образом:
table: Restaurants
cols: id, restname, preferred, image, phone, address, website, vip_special
Эта таблица статична в отношении столбцов.
table: Locations
cols: id, restname, downtown, bluffton, tybee, pooler, etc...
table: Cuisines
cols: id, restname, american, chinese, seafood, bar_tavern, etc...
table: Ambiances
cols: id, restname, outdoor_dining, fine_dining, waterfront, rooftop, romantic, etc...
Последние 3 таблицы требуют, чтобы разработчик вошел и добавил новый столбец для каждого нового местоположения, кухни или обстановки, а также изменил код, чтобы отразить эти новые столбцы.
Я не самый лучший, когда дело доходит до DBA, поэтому мне было любопытно, какова будет лучшая структура в этой ситуации.
Ассоциации: у ресторана может быть несколько мест, кухни и атмосфера
Спасибо всем за помощь.
1 ответ
Вот начало
restaurant
restaurant_id | restaurant_nm | everything that a restaurant has exactly one of
tag_restaurant_rel
restaurant_id | tag_id
tag
tag_id | tag_type(_id) | tag_nm
tag_type
tag_type_id | tag_nm
Тип тега может быть перечислением, если у вас есть несколько типов, которые не изменятся, вы можете удалить таблицу типов.
Я не уверен, если вы хотите назначить один ресторан нескольким местам, так как, хотя они могут быть цепочкой, атмосфера может отличаться, и меню может предлагать разные кухни