Форум: "Базы";
Текущий архив: 2006.12.10;
Скачать: [xml.tar.bz2];
ВнизПроектирование иерархической БД. Найти похожие ветки
← →
Kolan © (2006-10-05 13:37) [0]Здравствуйте,
В базах почти не разбираюсь, только начал.
В предметной области есть набор объектов. Например,A
,B
иС
Причем, допустим, вB
входитA
. АC
состоит изA
иB
.
Нужно сделать таблицу для хронения этого всего. Как я понял это делается с пом иерархии. Те таблица будет примерно такой:
DeviceID
---------
ParentID
Если бы объект мог состоять только из одного родителя все понятно:
A|A
B|A
C|B
Тут A состоит сам из себя, в В входит А. в С входит В.
А что делать если объект состоит из двух и более родительских?
← →
Sergey13 © (2006-10-05 13:45) [1]> Те таблица будет примерно такой:
>
> DeviceID
> ---------
> ParentID
Нет, таблица будет примерно такой:
DeviceID, ParentID, Другие поля
← →
Kolan © (2006-10-05 13:47) [2]То есть для каждого родителя нужно поле? Типо:
DeviceID
---------
Parent1ID
---------
Parent2ID
итд...
А если их n штук?
← →
Johnmen © (2006-10-05 13:48) [3]
> А что делать если объект состоит из двух и более родительских?
Это отношение многие-ко-многим. Реализуется стандартно, через вспомогательную таблицу...
← →
Lex_! © (2006-10-05 13:50) [4]
> А что делать если объект состоит из двух и более родительских?
Конкретный пример?
← →
Kolan © (2006-10-05 13:57) [5]
> Это отношение многие-ко-многим. Реализуется стандартно,
> через вспомогательную таблицу...
Все дошло, кажется :). Блин в стороно баз как-то голова не работает :)
Благодарю.
← →
Kolan © (2006-10-05 14:04) [6]
> Конкретный пример?
Телевизор состоит из тысяч элементов...
← →
Lex_! © (2006-10-05 14:10) [7]т1:
телевизор - 1
т2
экран -1
схема - 2
т3
1 - 1
1 - 2
так вроде ..
← →
MsGuns © (2006-10-05 14:13) [8]>Lex_! © (05.10.06 14:10) [7]
>так вроде ..
нет, не так.
← →
Kolan © (2006-10-05 14:15) [9]
> Lex_! © (05.10.06 14:10) [7]
Те на каждую деталь будет по строке? Так?
← →
Lex_! © (2006-10-05 14:46) [10]Ну говорят что не так, не так значит не так...
← →
Sergey13 © (2006-10-05 14:57) [11]> [6] Kolan © (05.10.06 14:04)
Деали для телека - дочки, а не родители. Как ветка для дерева.
← →
Johnmen © (2006-10-05 15:02) [12]ЖК матрица для телевизора - производства корейского Samsung, а микросхемы - голландского Phillips, а платы паяла - китайская Noname.
Вот уже, как минимум, три родителя у ящика...:)
← →
ANB © (2006-10-05 15:31) [13]
> ЖК матрица для телевизора - производства корейского Samsung,
> а микросхемы - голландского Phillips, а платы паяла - китайская
> Noname.
> Вот уже, как минимум, три родителя у ящика...:)
С точки зрения теории, это уже не родители, а потомки разного вида.
А связки - многие к многим в любых комбинациях - стандартная линковочная таблица.
← →
Kolan © (2006-10-05 16:23) [14]Ну я назвал это родителем тк конкретно для моей задачи сначала делают А на его основе В а уж потом С. Выходит родитель. Но суть не изменяется...
← →
Sergey13 © (2006-10-05 16:27) [15]> [14] Kolan © (05.10.06 16:23)
Типа спецификации что-то? Ну дык изделие - корень, узлы/детали - дети.
Или опиши задачу.
← →
PEAKTOP © (2006-10-05 16:47) [16]Помоему, классический пример составления производственной калькуляции заказа.
Организуется на двух талицах
CREATE TABLE TABL$TMC(
ID INTEGER NOT NULL PRIMARY KEY,
NAME VARCHAR(50)
);
CREATE TABLE TABL$TMC_CALC(
TMC_ID INTEGER NOT NULL FOREIGN KEY REFERENCES TABL$TMC(ID),
TMC_CHILD_ID INTEGER NOT NULL FOREIGN KEY REFERENCES TABL$TMC(ID),
QUANT NUMERIC(15,3) DEFAULT 1.000
)
А твои объекты будут описываться следующим образом
TABL$TMC
ID NAME
--------------------
1 A
2 B
3 C
TABL$TMC_CALC
TMC_ID TMC_CHILD_ID QUANT
---------------------------------
1 2 1.000 // Причем, допустим, в B входит A.
3 1 1.000 // А C состоит из A и B.
3 2 1.000
← →
atruhin © (2006-10-05 17:21) [17]А почему все ополчились против наследования? [0]
Например у нас вся БД построенна на этом:
Например справочник корреспондентов:
Таблица А:
Наименование, Удален ...
Таблица B:
Аббревиатура
Далее таблицы специфических полей для: физ лиц, юр.лиц, складов и т.д таблицы в иерархии связаны 1:1
Делаем представления:
Корреспонденты - не изменяемое, по нему осуществляется поиск, отображение и т.д контроль ссылок.
физ лиц, юр.лиц - изменяемые представления. С ними работаем как с обычной таблицей.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2006.12.10;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.044 c