Как правильно создать структуру БД

darksmoke

Новичок
Как правильно создать структуру БД

Помогите правильно создать структуру БД.

Есть список городов. При нажатии на город выдается список предприятий в этом городе. При нажатии на предприятие открывается информация о предприятии. В информации о предприятии есть перечень услуг. При нажатии на перечень услуг открывается страничка с описанием услуги.

З.Ы. Получается что услуги все разные... . ((
 

findnext

Новичок
darksmoke
ты предложи сначала свою структуру, а мы подкорректируем, если что не так
 

darksmoke

Новичок
1. Таблица для городов.
2. Таблица с названием предприятий.
3. Таблица с общим описанием предприятия (для всех критерии одинаковые)

А вот как дальше пойти не знаю. Ведь перечень услуг может быть как по количеству разный так и по названию. Вообще у них не чего общего может не оказаться.

Вот как то так я вижу. Корректируйте, пожалуйста.
 

findnext

Новичок
darksmoke есть несколько вариантов.
Самый лёгкий и удобный в использовании на мой взгляд завести таблицу связей id_predprijatija, id_uslugi. Не забыть поставить индекс.
 

Beavis

Banned
Я чувствую вы найдете общий язык :D

darksmoke
выдели все сущности, которые будут использоваться в твоей системе...
определи, как они будут связаны друг с другом (один-ко-многим или многие-ко-многим)
потом у каждой сущности определи свойства.
исходя из этого можно будет легко сделать таблицы
 

Beavis

Banned
findnext
т.е. ему этих трех таблиц хватит?

-~{}~ 11.06.09 17:28:

Автор оригинала: findnext
Самый лёгкий и удобный в использовании
тут не должно быть лёгких, сложных, удобных, неудобных способов...
должен быть единственный правильный способ связать таблицы
 

findnext

Новичок
т.е. ему этих трех таблиц хватит?
хватит для чего?

Я показал ТС-у как делаются связки SQL. В данном случае ТС не может связать таблицу услуг с таблицей предприятий. Как я понял это и является основной проблемой данного поста.
 

JOSS-PHP

Новичок
а что входит в описание услуги? если там просто како-либо текст наподобие "изготовление чайников", то достаточно к тем трём еще добавить таблицу с полями id, company_id, name, description, price

если будут случаи когда одну и ту же услугу предлагает несколько предприятий, то тогда нужно к тем трём добавить еще две таблицы
в одной описание услуги, а вторая
завести таблицу связей id_predprijatija, id_uslugi
 

darksmoke

Новичок
Получается так:

Услуги у всех разные, их может быть от одной до 50.
Услуги принадлежат Описанию предприятия.
Описание предприятия -> Названию предприятия
Название предприятия -> Городу в котором оно находится.

Вся сложность, для меня, придумать как связывать или как объеденить услуги с описанием и предприятием.
 

Beavis

Banned
darksmoke
тебе не кажется что сущность - это "предприятие", а "название" и "описание" это его свойства?
 

Beavis

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

Город связан с предприятиями связью "один-ко-многим", а это значит что в таблице предприятий должно быть поле city_id, которое будет являться внешним ключом к таблице cities.
Услуги связаны с предприятиями связью "многие-ко-многим", значит необходимо ввести дополнительную таблицу companies_services в которой будет всего два поля company_id и service_id, хранящие связь между предприятием и услугой.

Все свойства, которые можно выделить у сущности, например у услуги: название, описание и т.д. - превращаются в поля соответствующей таблицы.

Разжевал.. Можешь глотать)
 

HraKK

Мудак
Команда форума
Блин, не заглядывал сюда месяц, наверно зря.
 
Сверху