|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
27.01.2015, 01:13 | #1 |
Подтвердите свой е-майл
Регистрация: 27.01.2015
Сообщений: 28
|
Как связывать предприятия,филиалы,склады,стеллажи ,ящики в иерархической структуре
Пищу программу складского учета(не лаб). Поставщики, покупатели и "мой фирмы" в таблице "контрагенты" вместе("мой фирмы" от поставщиков и покупателей различаю по реквизиту "MyFirm").
см. диаграмму: [Часть Диаграммы](http://fastpic.ru/view/63/2015/0125/...e1870.png.html) Хочу создать иерархическую структуру типа: Код:
Мой вопросы: 1)Как создать такую древовидную структуру? Если в таблице склады добавлю поле ParentID, тогда смогу создать записи стеллажей и ящиков и построить иерархию склада типа: Код:
Код:
2) Если иерархию построю по другому( т.н. "структура с потабличным хранением уровней"-т.е. цепь связанных таблиц: фирмы-филиалы-подразделения-склады-стеллажи-ящики и т.д.) тогда какую иерархию построить- у одних фирм не будет стеллажи и таблица будет пустая, у других ящики,а третьи захотят добавить что-то другое и для них придётся создать дополнт.таблицу.Как запихнуть для них в этой предопределенно созданной цепи справочников новый справочник, то есть новую таблицу? Как? Что-то сильно запутался. прошу помочь/поправить/дать предложения. Заранее спасибо. |
27.01.2015, 06:37 | #2 |
Старожил
Регистрация: 03.01.2014
Сообщений: 2,870
|
Можно к складу/стеллажу/ящику и т.д. добавить поле с id фирмы/филиала/подразделения и т.д. Тогда будет связь между двумя иерархическими структурами.
|
27.01.2015, 07:37 | #3 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Так то ты прав, но ИМХО тут надо хорошенько продумать структуру. А возможно для этой задачи я бы даже взял не реляционную СУБД (раз это не учебка) а иерархическую.
I'm learning to live...
|
|
27.01.2015, 09:28 | #4 |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
Если фирма небольшая и запросов к базе не много, можно ограничиться файлом в формате XML. В отличии от базы, включение новых узлов в него, процедура достаточно простая и не требует реорганизации всей базы. По мере того, как файл будет разрастаться, проявится и его структура. На этапе разработки, это самый оптимальный подход. Всё равно на начальной стадии, Вы не сможете предусмотреть всех требований, которые будут выдвигать конечные пользователи.
После того, как структура будет отлажена и количество запросов к файлу возрастёт, можно будет подумать, как это запихнуть в БД. Вопрос на засыпку. А чем Acess не угодил? В нём такие вещи, на ура можно сделать.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder Последний раз редактировалось Smitt&Wesson; 27.01.2015 в 09:30. |
27.01.2015, 09:53 | #5 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
27.01.2015, 10:16 | #6 |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
С какой радости? XML это строковый формат иерархической БД.
Пример: Код:
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder Последний раз редактировалось Smitt&Wesson; 27.01.2015 в 10:35. |
27.01.2015, 11:27 | #7 | ||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Цитата:
I'm learning to live...
|
||
27.01.2015, 12:09 | #8 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
По мне удобней цепь связных таблиц. С иерархией серьезно тяжелей с запросами будет. Ну а в тех, у которых нет стелажей, но есть ящики можно так
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
27.01.2015, 14:26 | #9 | |
Подтвердите свой е-майл
Регистрация: 10.01.2013
Сообщений: 16
|
Никакой Ассеss, ,база рабочая, уже 10 лет работаю на Interbase 2009 и сейчас перехожу на Firebird 2.5 и доработаю и бд и интерфейс. Древовидные структуры в моей бд конечно есть и не один, но все они основаны на одной таблице, такой случай пока некогда не был.
Цитата:
Последний раз редактировалось bidzina; 27.01.2015 в 14:29. |
|
27.01.2015, 14:50 | #10 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Получается что в каждой таблице тогда нужно делать отдельное поле, где будет храниться ParentID. Сколько таблиц столько и полей. Другое пока в голову не идет.
I'm learning to live...
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как разработать ИС предприятия? | SrgKord | Общие вопросы по программированию, компьютерный форум | 5 | 07.02.2014 10:44 |
Delphi7 - как связывать таблицы | hunter08923 | Помощь студентам | 0 | 22.05.2012 12:05 |
ящики не желают падать | серг | Общие вопросы C/C++ | 1 | 06.12.2010 22:34 |