Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Каким образом можно к одной записи привязать разное количество [D6, IB6.x]


Miwa ©   (2004-01-04 13:57:00) 

полей? Тоесть, например, есть база с блюдами, или фильмами, или запчастями для компов или еще чего. Естессно, что в каждом блюде есть разное количество ингридиентов, в фильме - актеров, в компьютере - винтов/процессоров и т.д.
Представляю себе это следующим образом: есть отдельная таблица с ингридиентами/актерами/запчастями. Тогда в главной таблице (где инфо о блюде/фильме/компе) может быть:
а) достаточное количество интовых полей чтобы удовлетворить любого гурмана/киномана/хакера;
б) есть одно строковое поле, в котором хранятся номера ингридиентов/актеров/харда - тогда для того чтобы узнать полную информацию о фильме нужно делать два запроса;
в) сделать десяток воспомагательных таблиц например по пять столбцов: когда заканчивается первых пять столбцов, начинаем использовать вторую таблицу, третью... или просто добавляем еще одну запись в первую.

Но у всех этих способов есть очевидные недостатки.

Вот в связи с этим вопросс: как это решается реально?

З.Ы. Прошу прощения за возможно профанский вопросс и такое же использование терминологии - только начал изучать базы и вот интерессно стало. А в рекомендованых книгах я такого не нашел. Может, плохо искал? :о)


Ильш   (2004-01-05 07:03:00) [1]

Плохо искал!Очень плохо :(
Такое или типа таког в каждой нормальной книге по базам описано. Или самому на основе теории додумать можно!


Johnmen   (2004-01-04 22:17:00) [2]

>Miwa ©

Это стандартно называется "связь многие-ко-многим".
Реализуется, как сказал Sergey13 © (04.01.04 14:13, через 3 таблицы.
В связующей таблице 2 int поля - ссылка на гурмана из табл.гурманов и ссылка на блюдо из табл.блюд.
13-10
13-22
13-56
25-56
99-56
...
Причем пара значений этих полей уникальна, т.е. уникальный индекс.


kaif   (2004-01-04 16:26:00) [3]

Рекомендую систему справочников с наследованием атрибутов в моей программе Allegro. Там эта задача решена. Описание можешь найти на сайте http://www.gaapinvest.com.Там можно и на сайте почитать и скачать в виде pdf.


miwa   (2004-01-04 14:22:00) [4]

Вав. Круто. Блин, ну почему такие хорошие вещи называются такимим страшными словами: "мастер-детальные связи". Прям для извращенцев з производства деталей. Бррр... :о))
Спасибо.


Sergey13   (2004-01-04 14:13:00) [5]

>Вот в связи с этим вопросс: как это решается реально?
Три таблицы:
1.Наименование блюда (фильма, компа)+ некоторая инфа, относящаяся именно к нему.
2.Справочник ингидиентов(актеров,запчастей)
3.Таблица связей, где на блюдо с кодом 13 есть несколько записей с кодами и количеством ингридиентов. Т.е. связок
13-10
13-22
13-56
13-89
например.
Рекомендуется почитать про мастер-детальные связи в программе и первичные/внешние ключи в БД.


Наверх

Титульная страница Поиск, карта сайта Написать письмо