Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Модель для мини молочного завода посоветуйте где что убрать.. / 2 сообщений из 2, страница 1 из 1
16.02.2015, 16:04
    #38880830
mr.Ulugbek
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модель для мини молочного завода посоветуйте где что убрать..
Привет всем
Есть мини молочный цех . У них стоит 1С производства но они почему то не хотят его использовать хотя на нем все функционал есть..

По этому заказали программу мини учет их продуктов.. Основное главный материал у них молока
Пример
Покупает молоко у разных частных фермеров допустим в день 1000 литр в день. Потом из молока делает Твороги,Брынзы,Сметана,Кефир итд.. Асортимент где то 30 наименование

Продукты разные
Творог (весовый) 10 кг
Творой штучный 300 гр
Кефир 1 литр 1 шт
Сметана 200гр 1 шт

Что бы получить 20 кг творога понадобиться 100 литр молока...
Что бы получить Сметана 200гр понадобиться 0,200 литр молока...

Учет идет так как они мне сказали
Поступает молока для каждого продукта указывает сколько уходит молока итд
Готовый продукция оприходует склад (Название фирмы)
Потом готовую продукцию продает Откуда (Из фирмы) куда (Покупатель) итд
Иногда покупатели делают возврат товара (причина брак или просрочен если за реализацию брали)
при возврате я добавил состояние товар нормал,брак,просрочен если нормалний плюсую склад..

Посоветуйте правильно ли создал структуру

Создал для теста 4 таблицу пока без справочника контрагентов
Код: 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.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
--DROP TABLE DOC;

CREATE TABLE DOC (
  DOCID    INTEGER NOT NULL,
  FROMID   INTEGER,
  TOID     INTEGER,
  DOCDATE  DATE,
  DOCNUM   VARCHAR(20),
  DOCTYPE  SMALLINT,
  /* Keys */
  PRIMARY KEY (DOCID)
);

CREATE INDEX DOC_INDEX01
  ON DOC
  (DOCDATE, DOCID);

COMMENT ON COLUMN DOC.DOCID
  IS 'ИД документ';

COMMENT ON COLUMN DOC.FROMID
  IS 'Откуда';

COMMENT ON COLUMN DOC.TOID
  IS 'Куда';

COMMENT ON COLUMN DOC.DOCDATE
  IS 'Дата документа';

COMMENT ON COLUMN DOC.DOCNUM
  IS 'Док номер';

COMMENT ON COLUMN DOC.DOCTYPE
  IS '1 - Постуление (молоко)
2 - Продажа  (Готовых продуктов. и молока тоже)
3 - Возврат от покупателей ( Если не испорченный то в склад если испорченный то склад не добавим )
4 - Поступление готовых продуктов из производства ( то есть прибавляем склад )';


--Table: DOCITEMS

--DROP TABLE DOCITEMS;

CREATE TABLE DOCITEMS (
  DOCID        INTEGER NOT NULL,
  GOODSID      INTEGER,
  GOODSQTY     INTEGER,
  GOODSPRICE   VARCHAR(20),
  GOODSSTATE   SMALLINT,
  GOODSMSRMNT  INTEGER
);

CREATE UNIQUE INDEX DOCITEMS_INDEX01
  ON DOCITEMS
  (DOCID, GOODSID);

COMMENT ON COLUMN DOCITEMS.DOCID
  IS 'Мастер ИД';

COMMENT ON COLUMN DOCITEMS.GOODSID
  IS 'Ид товара';

COMMENT ON COLUMN DOCITEMS.GOODSQTY
  IS 'Количество';

COMMENT ON COLUMN DOCITEMS.GOODSPRICE
  IS 'Цена продажи';

COMMENT ON COLUMN DOCITEMS.GOODSSTATE
  IS 'Состояние товара';

COMMENT ON COLUMN DOCITEMS.GOODSMSRMNT
  IS 'Ед изм';

--Table: GOODS

--DROP TABLE GOODS;

CREATE TABLE GOODS (
  GOODSID        INTEGER NOT NULL,
  GOODSNAME      VARCHAR(20),
  GOODSPRICE     DECIMAL,
  GOODS_COST     DECIMAL,
  GOODSMSRMNT    INTEGER NOT NULL,
  GOODSTYPE      SMALLINT,
  GOODS_GOODSID  INTEGER NOT NULL,
  GOODS_OUT      DECIMAL,
  GOODS_IN       DECIMAL(9,3),
  /* Keys */
  PRIMARY KEY (GOODSID)
);

COMMENT ON COLUMN GOODS.GOODSID
  IS 'Ид Товара';

COMMENT ON COLUMN GOODS.GOODSNAME
  IS 'Название товара
';

COMMENT ON COLUMN GOODS.GOODSPRICE
  IS 'Цена продажи по умолчание';

COMMENT ON COLUMN GOODS.GOODS_COST
  IS 'Себестоимость товара';

COMMENT ON COLUMN GOODS.GOODSMSRMNT
  IS 'Ед измерение';

COMMENT ON COLUMN GOODS.GOODSTYPE
  IS '1- 0 Продукт или товар для продукта';

COMMENT ON COLUMN GOODS.GOODS_GOODSID
  IS 'ИД товара для продукта пример (молока)';

COMMENT ON COLUMN GOODS.GOODS_IN
  IS 'Сколько товар уходит на один продукт';

--Table: MSTMNT

--DROP TABLE MSTMNT;

CREATE TABLE MSTMNT (
  ID    INTEGER,
  NAME  VARCHAR(20) CHARACTER SET NONE
);



Для получение остатков создал
2 представление
Код: 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.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
--View: PRODUCTSHISTORY

--DROP VIEW PRODUCTSHISTORY;

CREATE VIEW PRODUCTSHISTORY
(
  DOCTYPE,
  DOCDATE,
  GOODSID,
  GOODSQTY
)
AS
select doc.DOCTYPE,doc.DOCDATE,docitems.GOODSID,docitems.GOODSQTY from docitems
  join doc on docitems.DOCID = doc.DOCID
   and doc.DOCTYPE=1
  join goods on docitems.GOODSID = goods.GOODSID
   and goods.GOODSTYPE = 0   
union 
select doc.DOCTYPE,doc.DOCDATE,docitems.GOODSID,-docitems.GOODSQTY from docitems
  join doc on docitems.DOCID = doc.DOCID
   and doc.DOCTYPE=2
  join goods on docitems.GOODSID = goods.GOODSID
union  
select doc.DOCTYPE,doc.DOCDATE,docitems.GOODSID,docitems.GOODSQTY from docitems
  join doc on docitems.DOCID = doc.DOCID
   and doc.DOCTYPE=3
   and docitems.GOODSSTATE=0
  join goods on docitems.GOODSID = goods.GOODSID
union
select doc.DOCTYPE,doc.DOCDATE,docitems.GOODSID,docitems.GOODSQTY from docitems
  join doc on docitems.DOCID = doc.DOCID
   and doc.DOCTYPE=4
  join goods on docitems.GOODSID = goods.GOODSID
   and goods.GOODSTYPE = 1   
union
select doc.DOCTYPE,doc.DOCDATE,goods.GOODS_GOODSID as GOODSID,-(docitems.GOODSQTY*goods.GOODS_OUT*goods.GOODS_IN) as GOODSQTY from docitems
  join doc on docitems.DOCID = doc.DOCID
   and doc.DOCTYPE=4
  join goods on docitems.GOODSID = goods.GOODSID
   and goods.GOODSTYPE = 1;


--View: WAREHOUSE

--DROP VIEW WAREHOUSE;

CREATE VIEW WAREHOUSE
(
  GOODSID,
  GOODSQTY
)
AS
SELECT GOODSID, SUM(GOODSQTY) GOODSQTY FROM ProductsHistory GROUP 
...
Рейтинг: 0 / 0
16.02.2015, 20:04
    #38881120
Программист-Любитель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модель для мини молочного завода посоветуйте где что убрать..
4 таблицы... Ну как тут не поёрничать ?
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Модель для мини молочного завода посоветуйте где что убрать.. / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]