|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
28.01.2015, 02:40 | #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. |
28.01.2015, 08:18 | #12 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,526
|
Цитата:
Код:
Код:
если что-то можно свалить в одну кучу, значит они изначально должны быть в одной таблице. если при этом они должны уметь разделяться, у них должен быть признак по которому они смогут разделиться (поле level которое посоветовали на другом форуме) собрать все данные (level1, level2, level3) в одну таблицу (firms) Код:
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 28.01.2015 в 08:49. |
|
28.01.2015, 09:22 | #13 | |
Форумчанин
Регистрация: 16.01.2015
Сообщений: 672
|
Цитата:
|
|
28.01.2015, 23:47 | #14 | |
Подтвердите свой е-майл
Регистрация: 10.01.2013
Сообщений: 16
|
lomastr_,
Цитата:
Значить, есть таблицы Contragents и warehouses. "Мой фирмы" входят в таблице Contragents. Если филиалы и подразделения добавлю в Contragents и сделаю вложенность,с помощью поля Parent_id смогу получить одну иерархию, а поля для стеллажей и ящиков добавлю в warehouses и тоже с помощью поля Parent_id получу иерархию склада. Но!... Как потом связать эти 2 иерархии? Поэтому пробовал сделать по-другому: Создать цепь таблиц, связанных внешними ключами. сделал запрос как предлагал evg_m: Код:
Код:
Код:
Последний раз редактировалось bidzina; 28.01.2015 в 23:51. |
|
29.01.2015, 02:28 | #15 |
Форумчанин
Регистрация: 16.01.2015
Сообщений: 672
|
связывание делается через FOREIGN KEY, если его мало, добавляют признаки..
для чего вам еще какието левелы? и длинные юнионы |
29.01.2015, 05:01 | #16 | ||
Подтвердите свой е-майл
Регистрация: 10.01.2013
Сообщений: 16
|
Цитата:
Тут есть статья про аналогичную ситуацию- когда создаётся цепь таблиц: http://www.opennet.ru/base/dev/hierarchy_sql.txt.html Цитата:
Код:
Код:
Код:
Наверно неправильный запрос пишу! Как преодолеть? |
||
29.01.2015, 05:08 | #17 | |||
Подтвердите свой е-майл
Регистрация: 10.01.2013
Сообщений: 16
|
Цитата:
Цитата:
Цитата:
|
|||
29.01.2015, 07:47 | #18 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Один мой знакомый схитрил. Создал в таблицах поле целочисленное, куда вписывался системный идентификатор таблицы. Брал он его из RDB$ из списка таблиц в БД. Т.е. это тупо уникальный номер таблицы в базе. По нему и строил связь. Запросы конечно получились мудреные но задачу он таким образом решил. Да и работает она по сей день.
I'm learning to live...
|
|
29.01.2015, 09:09 | #19 |
Форумчанин
Регистрация: 16.01.2015
Сообщений: 672
|
иерархия в таблице это просто
ид, найм, парент ид, ... вот и вся ваша структура в 1 таблице чтобы не было совсем каши можно конторы и склады разделить КОНТОРЫ:ид, найм, парент ид, ... СКЛАДЫ:ид, найм, парент ид, контора ид,... или связать через 3 таблицу КОНТОРЫ:ид, найм, парент ид, ... СКЛАДЫ:ид, найм, парент ид,... СВЯЗЬ:контора ид, склад ид для чего вам левелы? какая у вас задача? Последний раз редактировалось lomastr_; 29.01.2015 в 09:12. |
29.01.2015, 11:28 | #20 | ||
Старожил
Регистрация: 20.04.2008
Сообщений: 5,526
|
Цитата:
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 |