Правильная структура БД MySQL - PullRequest
0 голосов
/ 10 апреля 2011

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

Текущая структура БД выглядит следующим образом:

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 Ответ

0 голосов
/ 10 апреля 2011

Вот начало

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

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

...