|
|
|
как связывать предприятия,филиалы,склады,мол в иерархической структуре?
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Пищу программу складского учета(не лаб). Поставщики, покупатели и "мой фирмы" в таблице "контрагенты" вместе("мой фирмы" от поставщиков и покупателей различаю по реквизиту "MyFirm"). К таблице "контрагенты" по contragents_id хочу связывать таблицу MyFirms, в котором буду хранить древовидную структуру. В посте 14782586 Old Nick даёт такой совет: "Организации, филиалы, склады, отв. мат. лица - это все одна и та же сущность и должна находиться в одной таблице. Для различающихся признаков можешь сделать доп. таблицы по связи 1-к-1. То есть должна быть возможность в поле FromStockID запихнуть и склад и мат. отв. лицо и организацию. Соответственно поле OrganizationID в таблице Products будет означать только юрлицо. Фактически это будет ведение учета в разрезе юрлиц". Если идти по этой пути и создам иерархическую структуру со ссылкой на предка(с помощью ParentID) тогда получается такая таблица: Код: sql 1. 2. 3. 4. 5. и такой резултат: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. то есть сначала, когда клиент создаст свою фирму, в таблице MyFirms его фирма не вставляется, она будет в контрагентах и MyFirms таблица связывается с таблицей "контрагенты" через ID. Мой вопросы: 1) при таком построений древовидной структуры как узнать какой ID записи в таблице принадлежит складу, сколько их, где филиалы, какой из записей есть МОЛ и т.д.? В этой таблице же будут обыкновенные строковые значения и больше ничего! А правильная иерархия полностью зависит от умения работать с программой и интеллекта клиента-он может вообще пропустит в иерархии склад или наименование магазина и закрепить товар не на склад, а например, прямо на стеллажи! Или я что-то недопонимаю? 2) Где место МОЛ-а? 3) Если иерархию построю по другому( т.н. "структура с потабличным хранением уровней"), то есть как тут: 7789614 , тогда какую иерархию построить- у одних фирм не будет стеллажи, у других ящики,а третьи хотят добавить что-то другое, как запихнуть для них в этой цепи справочников новый справочник, то есть новую таблицу? Что-то сильно запутался. прошу помочь/поправить/дать предложения. Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2015, 03:30 |
|
||
|
как связывать предприятия,филиалы,склады,мол в иерархической структуре?
|
|||
|---|---|---|---|
|
#18+
Delphi159, ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2015, 04:57 |
|
||
|
как связывать предприятия,филиалы,склады,мол в иерархической структуре?
|
|||
|---|---|---|---|
|
#18+
ViPRosDelphi159, ViPRos , и что...?! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2015, 12:26 |
|
||
|
как связывать предприятия,филиалы,склады,мол в иерархической структуре?
|
|||
|---|---|---|---|
|
#18+
Delphi159, рано тебе такой фигней страдать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2015, 01:25 |
|
||
|
как связывать предприятия,филиалы,склады,мол в иерархической структуре?
|
|||
|---|---|---|---|
|
#18+
ViPRosDelphi159, рано тебе такой фигней страдать суперинтеллект ,если рано, зачем тогда предлагать такой "умный рисунок"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2015, 03:02 |
|
||
|
как связывать предприятия,филиалы,склады,мол в иерархической структуре?
|
|||
|---|---|---|---|
|
#18+
[quot Delphi159][quot ViPRos]Delphi159, не х..я не в чём не разбираешься кроме оскорбления! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2015, 03:07 |
|
||
|
как связывать предприятия,филиалы,склады,мол в иерархической структуре?
|
|||
|---|---|---|---|
|
#18+
Delphi159, иерархию вынеси в отдельную сущность. никого не слушай. можно сделать все и без нее. контрагенты - есть контрагенты, одна таблица (юрики, физики) собств.фирмы вынеси в отдельную таблицу. Склады тоже отд.таблица. МОЛ сделай реквизитом склада. Ячейки сделай подчиненным справочником к складам. не усложняй своей схемой учет, а то рискуешь на иерархии так и зависнуть! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2015, 03:58 |
|
||
|
как связывать предприятия,филиалы,склады,мол в иерархической структуре?
|
|||
|---|---|---|---|
|
#18+
wamacoDelphi159, иерархию вынеси в отдельную сущность. никого не слушай. можно сделать все и без нее. контрагенты - есть контрагенты, одна таблица (юрики, физики) собств.фирмы вынеси в отдельную таблицу. Склады тоже отд.таблица. МОЛ сделай реквизитом склада. Ячейки сделай подчиненным справочником к складам. не усложняй своей схемой учет, а то рискуешь на иерархии так и зависнуть! wamaco, спасибо за ответ и поощрение, форумчане извиняюсь за грубое высказывание! Просто ненавижу людей, которые думают, что они самые умные на свете! Завтра, то есть уже сегодня, предложу диаграмму БД, просто хотел её доработать в контексте таблицы MyFirms ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2015, 04:42 |
|
||
|
как связывать предприятия,филиалы,склады,мол в иерархической структуре?
|
|||
|---|---|---|---|
|
#18+
Delphi159 Если добавлю ParentId поле в warehouses, смогу получить иерархию типа Код: sql 1. 2. 3. 4. 5. 6. 7. 8. а мне нужна такое дерево: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. см. диаграмму ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2015, 19:30 |
|
||
|
как связывать предприятия,филиалы,склады,мол в иерархической структуре?
|
|||
|---|---|---|---|
|
#18+
В прдобных задачах очень тонкий момент где иметь жестко зашитую структуру на фиксированных таблицах Фирма-Склад а где гибкую на произвольном числе уровней иерархии. Иногда прихордится совмещать - до какого-то уровня фиксированная, дальше - гибкая. Иногда хранить описание фиксированной/гибкой иерерхии в дополнительных мета-таблицах и строить процедуры и интрефейс на основании мета-данных. Выбор конкретной реализации зависит от специфики ваших требований. Сделать можно по-разному, как именно будет наиболее выгодно ? С точки зрения админа - тока фиксированная структура, никаких динамически генерируемых финтифлюшек. С точки зрения программера - накодить унивесальную иерархию и поддержитвать ее в одном месте а не в 10 разных. С точки зрения пользователя - ему реализация по барабабану, надо чтобы интерфейс был удобный - симбиоз тривью и таблицы, каждая ячйека - количество чего-то там в данном узле. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2015, 09:03 |
|
||
|
как связывать предприятия,филиалы,склады,мол в иерархической структуре?
|
|||
|---|---|---|---|
|
#18+
П-Л как именно будет наиболее выгодно ? С точки зрения админа - тока фиксированная структура, никаких динамически генерируемых финтифлюшек. С точки зрения программера - накодить унивесальную иерархию и поддержитвать ее в одном месте а не в 10 разных. С точки зрения пользователя - ему реализация по барабабану, надо чтобы интерфейс был удобный - симбиоз тривью и таблицы, каждая ячйека - количество чего-то там в данном узле. Если в таблице Контрагенты добавлю поле ParentID, тогда смогу вставить в таблице записи филиалов и подразделении и построить иерархию типа: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Если в таблице склады добавлю поле ParentID, тогда смогу создать записи стеллажей и ящиков и построить иерархию типа: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Но это не та иерархия- здесь нет связи между этими двумя иерархиями. А мне нужен такая иерархия Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2015, 21:36 |
|
||
|
как связывать предприятия,филиалы,склады,мол в иерархической структуре?
|
|||
|---|---|---|---|
|
#18+
Если я правильно понял задачу, то мне видится, что танцевать надо от склада, так как он четко зависит от фирмы, филиала, подразделения: WAREHOUSES ware_id ware_title - название склада counteragent_id - ссылка на таблицу контрагентов branch_id - ссылка на таблицу филиалов subdivision_id - ссылка на таблицу подразделений responsible_person_id - ссылка на таблицу МОЛ Далее ввести справочник видов хранения (коробки, стеллажи, ящики) и т.д. Виды можно добавлять сколько угодно: STORAGE_TYPE stor_id stor_title - ящики, стеллажи, коробки... Связь склада с видом хранения впихнуть в дополнительную соединительную таблицу. В этой таблице увидим какой склад с каким видом хранения работает. Таблица эта нужна, потому что каждый склад может работать с несколькими видами хранения - иметь стеллажи, просто ящики складировать или ящики на стеллажи ставить )) ): STORAGE_RELATION rel_id stor_id - ссылка на таблицу STORAGE_TYPE ware_id - ссылка на таблицу WAREHOUSES Ну а дальше дело техники - распихнуть товар по складам, типам хранения и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2015, 07:43 |
|
||
|
как связывать предприятия,филиалы,склады,мол в иерархической структуре?
|
|||
|---|---|---|---|
|
#18+
forgothepassЕсли я правильно понял задачу,... Вы неправильно поняли задачу! Дело не в том как 2 таблицы связывать, а в том как связывать 2 таблицы- иерархии. У обойх свой, разные ParentID, как их связывать! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2015, 14:16 |
|
||
|
как связывать предприятия,филиалы,склады,мол в иерархической структуре?
|
|||
|---|---|---|---|
|
#18+
forgothepassЕсли я правильно понял задачу, то мне видится, что танцевать надо от склада, так как он четко зависит от фирмы, филиала, подразделения: WAREHOUSES ware_id ware_title - название склада counteragent_id - ссылка на таблицу контрагентов branch_id - ссылка на таблицу филиалов subdivision_id - ссылка на таблицу подразделений responsible_person_id - ссылка на таблицу МОЛ Далее ввести справочник видов хранения (коробки, стеллажи, ящики) и т.д. Виды можно добавлять сколько угодно: STORAGE_TYPE stor_id stor_title - ящики, стеллажи, коробки... Связь склада с видом хранения впихнуть в дополнительную соединительную таблицу. В этой таблице увидим какой склад с каким видом хранения работает. Таблица эта нужна, потому что каждый склад может работать с несколькими видами хранения - иметь стеллажи, просто ящики складировать или ящики на стеллажи ставить )) ): STORAGE_RELATION rel_id stor_id - ссылка на таблицу STORAGE_TYPE ware_id - ссылка на таблицу WAREHOUSES Ну а дальше дело техники - распихнуть товар по складам, типам хранения и т.д. устраивает и по-другому:создать цепь таблиц Фирма-филиал-пподразделение-склад-стеллаж и(или)ящик то есть как тут: [msg= 7789614]. для этого создал 3 таблицы: Level1,Level2,Level3 как описано тут: http://www.opennet.ru/base/dev/hierarchy_sql.txt.html .Начинается так"Одним из вариантов хранения таких иерархий является поуровневое хранение в различных таблицах"... Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. и запрос Код: sql 1. 2. 3. 4. 5. но результат не тот: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. как выдите Parent_ID собраны из всех 3 таблиц и с помощью их невозможно построить TreeView?! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2015, 03:35 |
|
||
|
как связывать предприятия,филиалы,склады,мол в иерархической структуре?
|
|||
|---|---|---|---|
|
#18+
Может это поможет? http://habrahabr.ru/post/193166/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2015, 06:13 |
|
||
|
как связывать предприятия,филиалы,склады,мол в иерархической структуре?
|
|||
|---|---|---|---|
|
#18+
forgothepassМожет это поможет? http://habrahabr.ru/post/193166/ forgothepass , спасибо вам,вопрос уже решен: Код: sql 1. 2. 3. 4. 5. уникальность id и parent_id гарантирован и свободно можно уже построить дерево. А на счёт построения и связывания 2 древовидных структур("Организации-филиалы-подразделения и склады-стеллажи-ящики-...-...) пока не представляю как это можно реализовать! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2015, 19:52 |
|
||
|
|

start [/forum/topic.php?fid=32&fpage=23&tid=1540661]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
44ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
| others: | 236ms |
| total: | 381ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...