Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.10.29;
Скачать: CL | DM;

Вниз

БД склада   Найти похожие ветки 

 
Sam Stone ©   (2006-10-12 19:34) [0]

Я, конечно, понимаю, что вопрос наверняка обмусоленный сотню-другю раз, но все же )
Набросок концептуалки - http://www.ljplus.ru/img/s/a/samstone/q1.GIF
Чтобы не было вопросов - "шаблон х.е." это заготовка для хранимого комплекта (например ящик водки :) в ящике 20 бутылок и тп :)). После копирования шаблона в хранимые единицы "комплект" можно будет разбазаривать ;) т.е., например, выдать 3 бутылки из ящика.
Вопрос такой: как лучше и удобнее для последующей работы прицепить учетную часть? Прием, перемещение, выдача груза. Я пока вижу 2 выхода: 1)таблица с хранящимся хламом разростается до ужасающих размеров, т.к. для статистики и отчетности хранятся все записи выданых грузов; 2)выданое перекидывать в другую таблицу, в приходе/выдаче перебивать ключи, ссылающиеся на груз либо заполнять доп. поле на таблицу "выдано (уехало со склада)". Как еще можно реализовать?

ЗЫ
 забыл FK из шаблона и хранимых эл-тов на класс кинуть, но картинку лень перезаливать :)


 
Zacho ©   (2006-10-12 19:58) [1]

Картинку не смотрел, лень :) но кое-что  исходя из собственного опыта сказать могу.
В общем случае, самая удобная схема учёта - партионная. Т.е. есть таблица (может несколько таблиц, всё зависит от особенностей конкретной задачи) с документами на приход/расход/перемещения партий товара. То, что такая таблица разрастётся -  не беда, конечно если СУБД не Paradox :) Впрочем, я видел вполне работающие подобные системы с гигабайтными базами именно на Парадоксе.
Для ускорения получения остатков на конкретную дату/конкретный склад/конкретный товар и т.п. можно сделать дополнительную таблицу с агрегатами, заполняемую автоматически.


> 2)выданое перекидывать в другую таблицу, в
> приходе/выдаче перебивать ключи, ссылающиеся на груз
> либо заполнять доп. поле на таблицу "выдано (уехало со
> склада)".

А в этом варианте геморроя будет не мерянно :)


 
Sam Stone ©   (2006-10-12 20:31) [2]

я вообще-то подразумевал распухание не документной таблицы, а той, где инфа о хранящемся хламе лежит ) Или это стандартно? Т.е., например, тереть/бэкапить/еще что-нибудь с инфой определенной давности делать...


 
Zacho ©   (2006-10-12 20:47) [3]

Дык, в партионной схеме - "документная таблица" и есть та таблица, в которой "инфа о хранящемся хламе лежит". Агрегаты остатков  - опционально, для ускорения работы.
Или ты о другом ?

Ну а насчёт распухания вообще.. Это действительно стандартно. При нормальной СУБД / правильном проектировании БД и приложений это никаких проблем не вызывает. Например, в складской БД с которой я последний раз имел дело была номенклатура около 70000, около 2000000 приходных/расходных документов и всё это шустро крутилось на P2-400 512 RAM, ~15 постоянных подключений, под IB 5.6
Если же "старые" данные действительно начинают доставлять проблемы с производительностью, то можно, например их перекидывать в специальные "архивные" таблицы или БД и т.п.


 
Sam Stone ©   (2006-10-12 21:56) [4]


> Zacho ©   (12.10.06 20:47) [3]


> Дык, в партионной схеме - "документная таблица" и есть та
> таблица, в которой "инфа о хранящемся хламе лежит"

вроде об этом ) Накладная и хранящийся объект связаны многие-ко-многим или один-ко-многим, не знаю, как удобнее будет (объекты принятые по накладной ссылаются на нее или накладная ссылается на список объектов, которые по ней приняли).
Если есть возможность, пульни схему БД с которой я последний раз мне на мыло. samstone на мыле ру.


 
Zacho ©   (2006-10-12 23:09) [5]

Sam Stone ©   (12.10.06 21:56) [4]
Если есть возможность,


Сейчас возможности нет. Если у тебя интерес к этому не пропадёт - попробую найти одну из ранних бет этой АСУТП (схемы БД коммерческих версий, извини, не имею права). Но это может занять пару дней. Просто у меня, похоже, оно или вообще не сохранилось, или где-то в завале болванок с архивами :) Если хочешь - пиши мне на мыло (в моей анкете), как найду - вышлю.
Впрочем, может быть тебе это и не потребуется - завтра с утра на форуме появятся гораздо более чем я компетентные в этом вопросе люди.
Дело в том, что в разработке этой хрени я участвовал 6 лет назад, а последний раз с ней работал 4 года назад. Естественно, многое уже забыл.

> Накладная и хранящийся объект связаны многие-ко-многим
> или один-ко-многим, не знаю, как удобнее будет
> (объекты принятые по накладной ссылаются на нее или
> накладная ссылается на список объектов, которые по ней
> приняли).


Кратко:
Есть справочник товаров (реально около десятка таблиц, от иерархического классификатора товаров до всяких разных атрибутов товаров), есть накладные (точнее, вообще довольно абстрактные "документы", и тоже не одна таблица). Документы ссылаются на участвующие в оперции товары. Данные типа количества, входной стоимости/наценки т.п. - в документах.  Для быстрого получения остатков - есть таблицы с агрегатами, которые заполняются/модифицируются триггерами при проведении документов.
Расходные документы ссылаются на приходные ... и т.п.

В общем, спрашивай, что помню - расскажу.


 
Sam Stone ©   (2006-10-13 00:30) [6]


> Впрочем, может быть тебе это и не потребуется - завтра с
> утра на форуме появятся гораздо более чем я компетентные
> в этом вопросе люди.

Тогда подождем компетентных людей ) а если не появятся - напишу :)
А пока сам буду думать.


> В общем, спрашивай, что помню - расскажу.

собсна, чего убить/добавить в картинке в [0]? :) Это только набросок


 
Sergey13 ©   (2006-10-13 08:37) [7]

> [1] Zacho ©   (12.10.06 19:58)
> Картинку не смотрел, лень :)

Аналогично. 8-)

> [0] Sam Stone ©   (12.10.06 19:34)
Ты как то странно начинаешь складской проект. Хранится у тебя "хлам", а главная проблема - "распухание" таблицы. А начинать надо с конкретного выяснения у заказчика - что за склад, как он работает, какая система учета, какую входную информацию он заносит сейчас и какая выходная информация его интересует в будущем, возможность комплектования/раскомплектования и т.д. и т.п.


 
Sam Stone ©   (2006-10-13 17:35) [8]


> начинать надо с конкретного выяснения у заказчика - что
> за склад, как он работает, какая система учета, какую входную
> информацию он заносит сейчас и какая выходная информация
> его интересует в будущем, возможность комплектования/раскомплектования
> и т.д. и т.п.

целью стоит написать не привязанную к чему-либо систему, а учет особо сложный и не нужен. Я хотел узнать, как лучше привязать документационную часть к системе хранения.


 
Sam Stone ©   (2006-10-13 17:41) [9]

Блин, не дописал... Основной упор делаю на размещение, перемещение и тп объектов (реализация логистики), поэтому мегаучет не нужен )


 
Sergey13 ©   (2006-10-16 08:49) [10]

> [8] Sam Stone ©   (13.10.06 17:35)
> целью стоит написать не привязанную к чему-либо систему,
> а учет особо сложный и не нужен. Я хотел узнать, как лучше
> привязать документационную часть к системе хранения.

С такими познаниями в предментной области ты сначала "привязанную" напиши, ибо "не привязанная" - это следующий (более высокий) уровень сложности.
ЗЫ: Если конечно не воспринимать "не привязанная" как "на фиг никому не нужная". 8-)



Страницы: 1 вся ветка

Текущий архив: 2006.10.29;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.046 c
2-1160838431
Steep
2006-10-14 19:07
2006.10.29
Рисование


10-1124694868
OldNaum
2005-08-22 11:14
2006.10.29
COM-сервер


15-1160316660
@!!ex
2006-10-08 18:11
2006.10.29
Install Shield и реестр


6-1144297719
RA81
2006-04-06 08:28
2006.10.29
Как сделать туннель между двумя серверами?


15-1160332313
vidiv
2006-10-08 22:31
2006.10.29
как вы пишите букву прописную «б» ?