powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Проектирование БД - склад.
13 сообщений из 13, страница 1 из 1
Проектирование БД - склад.
    #34579391
paralel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго времени суток, господа, форумчане.
Для К.Р. необходимо, смоделировать работу БД Склад. Почитал форум, вот к чему пришел (опуская некоторые “незначительные” поля):

Таблица “ostatki” – нужна лишь для ускорения производительности. В принципе, думаю, можно обойтись и без нее.
Вопрос: Подскажите пожалуйста, правильно ли смоделировал? Или укажите на явные ошибки.
...
Рейтинг: 0 / 0
Проектирование БД - склад.
    #34579402
paralel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
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.
CREATE TABLE EDIZM (
    ED_ID INTEGER NOT NULL,
    ED_NAME VARCHAR( 128 ));


CREATE TABLE GROUP_T (
    G_ID INTEGER NOT NULL,
    G_NAME VARCHAR( 128 ));


CREATE TABLE KONTR_TYPE (
    KT_ID INTEGER NOT NULL,
    KT_NAME VARCHAR( 50 ));


CREATE TABLE KONTRAGENT (
    KON_ID INTEGER NOT NULL,
    NAME VARCHAR( 128 ),
    KON_TYPE INTEGER,
    KONTAKT VARCHAR( 256 ));


CREATE TABLE OSTATKI (
    O_KONTR INTEGER,
    O_TOVAR INTEGER,
    O_KOLVO INTEGER);


CREATE TABLE PROVOD_TYPE (
    PRT_ID INTEGER NOT NULL,
    PRT_NAME VARCHAR( 60 ));


CREATE TABLE PROVODKI (
    PR_ID INTEGER NOT NULL,
    PR_TYPE INTEGER,
    PR_TOVAR INTEGER,
    PR_OTKOGO INTEGER,
    PR_KOMU INTEGER,
    PR_KOLVO INTEGER,
    PR_DATE INTEGER);


CREATE TABLE TOVAR (
    T_ID INTEGER NOT NULL,
    T_GROUP INTEGER,
    T_NAME INTEGER,
    T_EDIZM INTEGER);
/***                              Primary keys                              ***/
ALTER TABLE EDIZM ADD CONSTRAINT PK_EDIZM PRIMARY KEY (ED_ID);
ALTER TABLE GROUP_T ADD CONSTRAINT PK_GROUP_T PRIMARY KEY (G_ID);
ALTER TABLE KONTR_TYPE ADD CONSTRAINT PK_KONTR_TYPE PRIMARY KEY (KT_ID);
ALTER TABLE KONTRAGENT ADD CONSTRAINT PK_KONTRAGENT PRIMARY KEY (KON_ID);
ALTER TABLE PROVOD_TYPE ADD CONSTRAINT PK_PROVOD_TYPE PRIMARY KEY (PRT_ID);
ALTER TABLE PROVODKI ADD CONSTRAINT PK_PROVODKI PRIMARY KEY (PR_ID);
ALTER TABLE TOVAR ADD CONSTRAINT PK_TOVAR PRIMARY KEY (T_ID);
/***                              Foreign keys                              ***/
ALTER TABLE KONTRAGENT ADD CONSTRAINT FK_KONTRAGENT FOREIGN KEY (KON_TYPE) REFERENCES KONTR_TYPE (KT_ID);
ALTER TABLE OSTATKI ADD CONSTRAINT FK_OST_KONTR FOREIGN KEY (O_KONTR) REFERENCES KONTRAGENT (KON_ID);
ALTER TABLE OSTATKI ADD CONSTRAINT FK_OST_TOVAR FOREIGN KEY (O_TOVAR) REFERENCES TOVAR (T_ID);
ALTER TABLE PROVODKI ADD CONSTRAINT FK_PROVODKI_O FOREIGN KEY (PR_TYPE) REFERENCES PROVOD_TYPE (PRT_ID);
ALTER TABLE PROVODKI ADD CONSTRAINT FK_PROVODKI_T FOREIGN KEY (PR_TOVAR) REFERENCES TOVAR (T_ID);
ALTER TABLE PROVODKI ADD CONSTRAINT FK_PROVODKI_KONTR1 FOREIGN KEY (PR_OTKOGO) REFERENCES KONTRAGENT (KON_ID);
ALTER TABLE PROVODKI ADD CONSTRAINT FK_PROVODKI_KONTR2 FOREIGN KEY (PR_KOMU) REFERENCES KONTRAGENT (KON_ID);
ALTER TABLE TOVAR ADD CONSTRAINT FK_TOVAR_1 FOREIGN KEY (T_GROUP) REFERENCES GROUP_T (G_ID);
ALTER TABLE TOVAR ADD CONSTRAINT FK_TOVAR_2 FOREIGN KEY (T_EDIZM) REFERENCES EDIZM (ED_ID);

...
Рейтинг: 0 / 0
Проектирование БД - склад.
    #34579407
paralel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Млин, не получается картинку прикрепить. И вообще что-то прикрепить...
...
Рейтинг: 0 / 0
Проектирование БД - склад.
    #34579447
paralel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
картинка:
...
Рейтинг: 0 / 0
Проектирование БД - склад.
    #34580100
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сабж многократно обсуждался. Примерно 3 раза/мес.
Ваша схема неуниверсальна.
В качестве остатков нужна таблица движения товара (её примерный вид многократно приводился).
Из неё Вы получите любую инфу и на любой период.

Таблица Остатков может применяться в качестве вспомогательной для ускорения вычислений, но только в некоторых случаях.
...
Рейтинг: 0 / 0
Проектирование БД - склад.
    #34580676
paralel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за ответ. Знаю что обсуждалось многократно, т.к. читал форум и на основании полученных сведений писал сам.
Вы пишите:
LSV
В качестве остатков нужна таблица движения товара

разве у меня это не таблица “provodki”? Если нет прошу объясните что не так понял
...
Рейтинг: 0 / 0
Проектирование БД - склад.
    #34581346
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
paralelразве у меня это не таблица “provodki”? Если нет прошу объясните что не так понялВообще-то похоже, что она :) Но там очень пригодится дата документа. Брать дату из документа будет медленно.
А если добавить парочку полей, то можно и партионный учет сделать.

Какова роль таблицы "Остатки" ? Почему нет признака "Дата" ?
...
Рейтинг: 0 / 0
Проектирование БД - склад.
    #34581627
paralel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1)Таблица "OSTATKI", показывает остатки товара складе(ах) на данный момент, т.е текущие. - поэтому там нет поля "дата".
2)В таблице "PROVODKI", есть поле дата: "PR_DATE"

Вообще думаю, что необходимо будет ввести таблицу "архив", в которую будут выгружаться проводки за месяц. Тогда получиться в таблице "PROVODKI", будут отражаться движения только за текущий месяц и следовательно запросы к ней будут работать быстрее. Поправьте если ошибаюсь, или подскажите другой способ.
...
Рейтинг: 0 / 0
Проектирование БД - склад.
    #34581830
Sergey Tokarev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А цены и суммы в твоей задаче не нужны?
...
Рейтинг: 0 / 0
Проектирование БД - склад.
    #34582133
paralel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Думаю что для КР не нужны цены, просто количественный учет товара :)
В будущем, (когда пройдет сессия), почитаю как правильно с финансовой частью работать, тогда и буду расширять. А пока мне интересно правильно ли я все распланировал?
...
Рейтинг: 0 / 0
Проектирование БД - склад.
    #34583758
Estets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Схема не рабочая ;) но движение в нужную сторону.

Что за таблица PROVOD_TYPE? Что вы там собираетесь хранить Обычная/Черное сторно? Вообще обычно на этом месте хранится ссылка на документ данную проводку породивший. Например приходная/расходная накладная, ведомость переучета и т.д.
...
Рейтинг: 0 / 0
Проектирование БД - склад.
    #34584563
paralel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EstetsСхема не рабочая ;) но движение в нужную сторону.

Что за таблица PROVOD_TYPE? Что вы там собираетесь хранить Обычная/Черное сторно? Вообще обычно на этом месте хранится ссылка на документ данную проводку породивший. Например приходная/расходная накладная, ведомость переучета и т.д.

Ну да так и есть, там я собирался хранить тип документа который породил движение товара т.е. приход, расход, перемещение. Понятно что это все в приметиве, т.к. не хватает таблиц в которых будут сами структуры этих проводок.
...
Рейтинг: 0 / 0
Проектирование БД - склад.
    #34645718
Shaman2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно поинтересоваться, почему медленно? Я не замечал у себя разницы в
скорости, когда работает схема: документ-строки документа-остатки, сами
остатки считаю как sum(qty) from ostatki..., а дата храниться в документ

"LSV" <nospam@sql.ru>; wrote in message news:4243052@sql.ru...
Автор: LSV
paralel
разве у меня это не таблица “provodki”? Если нет прошу объясните что не так
понял
Вообще-то похоже, что она :) Но там очень пригодится дата документа. Брать
дату из документа будет медленно.
А если добавить парочку полей, то можно и партионный учет сделать.

Какова роль таблицы "Остатки" ? Почему нет признака "Дата" ?
Тема Ответить Сообщение


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Проектирование БД - склад.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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