![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 |
Подтвердите свой е-майл
Регистрация: 10.01.2013
Сообщений: 16
|
![]()
создал 3 таблицы-фирмы,филиалы,подразделения, чтобы создать связь между иерархиями. связь между ними как предлагал Streletz:
Код:
Код:
Код:
Код:
Код:
здесь предлагают добавить поле LEVEL :http://www.opennet.ru/base/dev/hierarchy_sql.txt.html select "ID",'1' as "LEVEL","NAME" from LEVEL1 union select "ID",'2' as "LEVEL","NAME" from LEVEL2 union select "ID",'3' as "LEVEL","NAME" from LEVEL3 Код:
Последний раз редактировалось Stilet; 28.01.2015 в 07:35. |
![]() |
![]() |
![]() |
#12 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,543
|
![]() Цитата:
Код:
Код:
если что-то можно свалить в одну кучу, значит они изначально должны быть в одной таблице. если при этом они должны уметь разделяться, у них должен быть признак по которому они смогут разделиться (поле level которое посоветовали на другом форуме) собрать все данные (level1, level2, level3) в одну таблицу (firms) Код:
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 28.01.2015 в 08:49. |
|
![]() |
![]() |
![]() |
#13 | |
Форумчанин
Регистрация: 16.01.2015
Сообщений: 672
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#14 | |
Подтвердите свой е-майл
Регистрация: 10.01.2013
Сообщений: 16
|
![]()
lomastr_,
Цитата:
Значить, есть таблицы Contragents и warehouses. "Мой фирмы" входят в таблице Contragents. Если филиалы и подразделения добавлю в Contragents и сделаю вложенность,с помощью поля Parent_id смогу получить одну иерархию, а поля для стеллажей и ящиков добавлю в warehouses и тоже с помощью поля Parent_id получу иерархию склада. Но!... Как потом связать эти 2 иерархии? Поэтому пробовал сделать по-другому: Создать цепь таблиц, связанных внешними ключами. сделал запрос как предлагал evg_m: Код:
Код:
Код:
Последний раз редактировалось bidzina; 28.01.2015 в 23:51. |
|
![]() |
![]() |
![]() |
#15 |
Форумчанин
Регистрация: 16.01.2015
Сообщений: 672
|
![]()
связывание делается через FOREIGN KEY, если его мало, добавляют признаки..
для чего вам еще какието левелы? и длинные юнионы |
![]() |
![]() |
![]() |
#16 | ||
Подтвердите свой е-майл
Регистрация: 10.01.2013
Сообщений: 16
|
![]() Цитата:
Тут есть статья про аналогичную ситуацию- когда создаётся цепь таблиц: http://www.opennet.ru/base/dev/hierarchy_sql.txt.html Цитата:
Код:
Код:
Код:
Наверно неправильный запрос пишу! Как преодолеть? ![]() ![]() |
||
![]() |
![]() |
![]() |
#17 | |||
Подтвердите свой е-майл
Регистрация: 10.01.2013
Сообщений: 16
|
![]() Цитата:
Цитата:
Цитата:
|
|||
![]() |
![]() |
![]() |
#18 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
Один мой знакомый схитрил. Создал в таблицах поле целочисленное, куда вписывался системный идентификатор таблицы. Брал он его из RDB$ из списка таблиц в БД. Т.е. это тупо уникальный номер таблицы в базе. По нему и строил связь. Запросы конечно получились мудреные но задачу он таким образом решил. Да и работает она по сей день.
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#19 |
Форумчанин
Регистрация: 16.01.2015
Сообщений: 672
|
![]()
иерархия в таблице это просто
ид, найм, парент ид, ... вот и вся ваша структура в 1 таблице чтобы не было совсем каши можно конторы и склады разделить КОНТОРЫ:ид, найм, парент ид, ... СКЛАДЫ:ид, найм, парент ид, контора ид,... или связать через 3 таблицу КОНТОРЫ:ид, найм, парент ид, ... СКЛАДЫ:ид, найм, парент ид,... СВЯЗЬ:контора ид, склад ид для чего вам левелы? какая у вас задача? Последний раз редактировалось lomastr_; 29.01.2015 в 09:12. |
![]() |
![]() |
![]() |
#20 | ||
Старожил
Регистрация: 20.04.2008
Сообщений: 5,543
|
![]() Цитата:
00001-10000 первая 10001-20000 вторая 20001-30000 третья и т.д. решается начальным значением генератора либо триггером insert или же использовать составной ключ (level, id) или вычислимое поле "numtable" * 100000 +key Цитата:
Код:
P.P.S. а единая таблица сразу решает проблему DBTree.
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 29.01.2015 в 11:31. |
||
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как разработать ИС предприятия? | SrgKord | Общие вопросы по программированию, компьютерный форум | 5 | 07.02.2014 10:44 |
Delphi7 - как связывать таблицы | hunter08923 | Помощь студентам | 0 | 22.05.2012 12:05 |
ящики не желают падать | серг | Общие вопросы C/C++ | 1 | 06.12.2010 22:34 |