помогите с алгоритмом.

dusya

Guest
помогите с алгоритмом.

Есть каталог с неограниченным числом разделов и подразделов.
Как наиболее оптимально спроектировать базу если одна и та же запись
может относиться к нескольким разделам?

Например: каталог предприятий, одно предприятия может относиться
нескольким отраслям.

Я раньше в таблице предприятий делал поле текстовое "Разделы", где
через точки с запятыми пересчитывал ID разделов.

При просмотре раздела искал в таблице предприятий за выражением "LIKE
;ID раздела;". Очевидно, этот способ далек от оптимального, поэтому
интересует Ваше мнение как наилучшим способом это сделать.

Спасибо Всем за внимание к вопросу.
 

dusya

Guest
програмирую на PHP, а база Mysql .

> многие ко многим

это как? можно пример?
 

ForJest

- свежая кровь
вот так
http://www.citforum.ru/database/dbguide/index.shtml
не прочитаешь - не приходи.
 

dusya

Guest
я что то там ничего о php или mysql неувидел.

"многие ко многим" - как это делать на php и чем мне это может помочь?
 

ForJest

- свежая кровь
Конкретно тебе это помочь не может. Потому что для тебя существуют только PHP и MySQL. А "Многие ко многим" относится к Реляционным Базам Данных. Это теория. Которая помогает в практике.
Твой конкретный случай:

factory
id | attr1 | attr2..
-----------------------
10| ОАО "Вечерний благовест"
20| Комбинат эротических игрушек

branch
id | atrr1 | attr2...
----------------------------
5 | Пищевая промышленность
8 | Лёгкая промышленность
11| Светлое
29| Доброе
34| Вечное

link_factory_branch
id_factory | id_branch
----------------------------
10 | 11
10 | 29
10 | 34
20 | 8
20 | 34
-------------------
Если не хватит интеллекта додуматься к каким отраслям промышленности относятся какие фабрики... В общем дальше - за деньги ;).
 

HEm

Сетевой бобер
хинт: почитай теорию баз данных, про "нормальные формы"
 

dusya

Guest
2 HEm: а можно попроще? что это такое и чем может помочь?


2 ForJest : большое спасибо за пример. я не программист за
образованием, поэтому теоретических основ к сожалению нету.
программирование в интернет это хобби - способ реализовать идеи.


Возможно, Вам известны вспомогательные классы для реализован
механизм управления связями между таблицами "factory" и "branch" ?

а как в английской терминологии звучит "многие ко многим" ?
 

HEm

Сетевой бобер
собственно тебе и дали ссылку на классический пример по теоретическим основам
http://www.citforum.ru/database/dbguide/4-5.shtml - о нормальных формах

Мое мнение - если ты берешься за что-то, то надо вникать в это полностью, из-за того, что многие "хватают верхушки" страдает качество их проектов и страдают конечные пользователи. Это касается всех сфер деятельности, не только программирования.
 

ForJest

- свежая кровь
Возможно, Вам известны вспомогательные классы для реализован
механизм управления связями между таблицами "factory" и "branch" ?
Есть такая штука SQL. Structured Query Language. Для него не нужны никакие классы. Классы пишут люди, которые понимают SQL. Пишут они для того, чтобы облегчить свою жизнь. Пока не будет основ - не будет и цельной картины.
 

dusya

Guest
ок. понятно :)

а как "многие ко многим" in english ?
 
Сверху