Ваш дизайн в порядке - он довольно чистый.Я нигде не вижу много ко многим - кажется, что это прямая иерархия.
Кроме того, ваш мыслительный процесс кажется ясным - продолжайте задавать себе подобные вопросы, и у вас все будет хорошо.
Однако у меня есть следующие предложения:
Во-первых, всегда называйте свои таблицы в единственном числе, business
не businesses
.
Во-вторых, старайтесь избегать префикса таблицыname для имен столбцов, поэтому name
, а не business_name
- когда вы ссылаетесь на него в запросе, это все равно очевидно: business.name
(дополнительные business_
в business.business_name
избыточны)
ТакжеПоскольку zip находится в городе, а город в штате, хранение данных о городе и штате по бизнесу является избыточной информацией, поэтому вам, вероятно, следует сделать следующее:
business
----------------
id
name
phone
address
zip_code_id
zip_code
--------
id
city_id
name
city
----
id
state_id
name
state
-----
id
name
Чтобы ответить на ваши вопросы и запросы, вы можетеполучить то, что вам нужно с этой схемой.Я не буду публиковать это здесь, если у вас действительно нет проблем, но это очень простые запросы, поэтому я оставлю это для вас.