Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Проектирование базы для склада / 11 сообщений из 11, страница 1 из 1
27.05.2009, 11:20
    #36009974
blest
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование базы для склада
В общей сложности есть основные три таблицы: приход, расход и остатки. В таблицы приход и расход данные только записываются и читаются, в таблице остатки только апдейтятся.
Таблицы приход и расход имеют 90% сходство в атрибутах, но расход предположительно будет в 5 раз больше прихода.
Имеет ли место здесь разделение этих таблиц, или же стоит испльзовать только одну таблицу? Запросы для отчетности впринципе будут отдельно по приходу и расходу, и по моему мнению будут быстрее обрабатываться из двух разных таблиц, чем из одной большой путем вычленнения из нее строк прихода и расхода.

Базы до этого не проектировал никогда, поэтому опыта пока маловато. Поэтому если кто поделится советами о подводных камнях буду признателен.
...
Рейтинг: 0 / 0
27.05.2009, 11:21
    #36009981
Naf
Naf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование базы для склада
...
Рейтинг: 0 / 0
27.05.2009, 16:50
    #36011311
LSV
LSV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование базы для склада
Если таблицы объединить в одну, то можно получать остатки на любую дату. Отдельная таблица остатков не нужна. Собственно это будет таблица движения.
Но... сами документы прихода/расхода (шапка/строки) желательно сделать отдельной парой таблиц, т.к. там возможно будет больше информации, которая в таблице движения не нужна или будет в другом виде, например единицы измерения, валюта, к-л признаки, и т.д.
Возможно будет несколько пар документных таблиц, но таблица движения будет одна.
Если к ней добавить таблицу привязок приход/расход то получаем полноценный партионный учет. Без которого и склад - не склад :)

ЗЫ: Сто раз тут обсасывали.
...
Рейтинг: 0 / 0
27.05.2009, 17:08
    #36011392
Naf
Naf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование базы для склада
Поясню Шаблон: Ресурсы накопления
Здесь описаны не все таблицы, указаны только результирующие.
Вот примерный список таблиц:
Документы:
1. ДокументыПриходнаяНакладаная
1.1. ПриходнаяНакладнаяТовары (подчинена 1)
2. ДокументыРасходнаяНакладаная
2.1. РасходнаяНакладнаяТовары (подчинена 2)
3. ДокументыСписаниеТоваров
3.1. СписаниеТоваровТовары (подчинена 3)
.... еще множество таблиц для других видов документов
Регистры (именно они описаны в шаблоне):
1.1. ТоварыНаСкладахДвижения (в шаблоне описана как TurnoverTable)
1.2. ТоварыНаСкладахОстатки (в шаблоне описана как BalanceTable)

При изменении полей документов "ПринятоКУчету" (в 1с "Проведен") по триггеру проводятся записи в таблице ТоварыНаСкладахДвижения, в свою очередь ее триггер изменяет ТоварыНаСкладахОстатки.
Таблица остатков по периодам (месяцам) оправдывается увеличением скорости при большой истории данных

С уважением, Naf
...
Рейтинг: 0 / 0
27.05.2009, 23:57
    #36012120
Проектирование базы для склада
NAf
При изменении полей документов "ПринятоКУчету" (в 1с "Проведен") по триггеру проводятся записи в таблице ТоварыНаСкладахДвижения, в свою очередь ее триггер изменяет ТоварыНаСкладахОстатки


А как триггер писать, можно пример ? В ДБ2, Oracle ( других не знаю ) надо писать InsteadOF, а там приходится все поля перечислять. Как-то это не красиво. Или я чего не знаю ?
...
Рейтинг: 0 / 0
28.05.2009, 02:07
    #36012200
monsenior
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование базы для склада
Помогите пожNAf
При изменении полей документов "ПринятоКУчету" (в 1с "Проведен") по триггеру проводятся записи в таблице ТоварыНаСкладахДвижения, в свою очередь ее триггер изменяет ТоварыНаСкладахОстатки


А как триггер писать, можно пример ? В ДБ2, Oracle ( других не знаю ) надо писать InsteadOF, а там приходится все поля перечислять. Как-то это не красиво. Или я чего не знаю ?
как писать триггер для конкретной СУБД нужно спрашивать в разделе этой СУБД,
или воспользоваться поиском!
...
Рейтинг: 0 / 0
28.05.2009, 13:49
    #36013145
blest
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование базы для склада
LSVЕсли таблицы объединить в одну, то можно получать остатки на любую дату. Отдельная таблица остатков не нужна. Собственно это будет таблица движения.
Но... сами документы прихода/расхода (шапка/строки) желательно сделать отдельной парой таблиц, т.к. там возможно будет больше информации, которая в таблице движения не нужна или будет в другом виде, например единицы измерения, валюта, к-л признаки, и т.д.
Возможно будет несколько пар документных таблиц, но таблица движения будет одна.
Если к ней добавить таблицу привязок приход/расход то получаем полноценный партионный учет. Без которого и склад - не склад :)

ЗЫ: Сто раз тут обсасывали.

Таблица остатки состоит из малого количества колонок, грубо говоря из колонок - айдишник товара, остаток на складе и цена на данный (настоящий) момент (мб это и есть движение.. хотя что такое движение я пока не совсем хорошо понимаю). На любой момент остатки я планировал выводить запросом из таблиц приход и расход. Вот и хотел узнать имеет ли смысл делать их в виде 2-х таблиц или сделать одной.
...
Рейтинг: 0 / 0
28.05.2009, 13:53
    #36013154
monsenior
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование базы для склада
Лутше 1 таблицу


P.S. - простите меня глупого
...
Рейтинг: 0 / 0
28.05.2009, 15:07
    #36013489
Naf
Naf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование базы для склада
blestLSVЕсли таблицы объединить в одну, то можно получать остатки на любую дату. Отдельная таблица остатков не нужна. Собственно это будет таблица движения.
Но... сами документы прихода/расхода (шапка/строки) желательно сделать отдельной парой таблиц, т.к. там возможно будет больше информации, которая в таблице движения не нужна или будет в другом виде, например единицы измерения, валюта, к-л признаки, и т.д.
Возможно будет несколько пар документных таблиц, но таблица движения будет одна.
Если к ней добавить таблицу привязок приход/расход то получаем полноценный партионный учет. Без которого и склад - не склад :)

ЗЫ: Сто раз тут обсасывали.

Таблица остатки состоит из малого количества колонок, грубо говоря из колонок - айдишник товара, остаток на складе и цена на данный (настоящий) момент (мб это и есть движение.. хотя что такое движение я пока не совсем хорошо понимаю). На любой момент остатки я планировал выводить запросом из таблиц приход и расход. Вот и хотел узнать имеет ли смысл делать их в виде 2-х таблиц или сделать одной.
Если интересует и суммовой учет, то нежно хранить оличество и сумму, но ни как не цену
Хотя бы потому, что Количество*Цена<>Сумма
...
Рейтинг: 0 / 0
28.05.2009, 15:51
    #36013683
blest
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование базы для склада
NafblestLSVЕсли таблицы объединить в одну, то можно получать остатки на любую дату. Отдельная таблица остатков не нужна. Собственно это будет таблица движения.
Но... сами документы прихода/расхода (шапка/строки) желательно сделать отдельной парой таблиц, т.к. там возможно будет больше информации, которая в таблице движения не нужна или будет в другом виде, например единицы измерения, валюта, к-л признаки, и т.д.
Возможно будет несколько пар документных таблиц, но таблица движения будет одна.
Если к ней добавить таблицу привязок приход/расход то получаем полноценный партионный учет. Без которого и склад - не склад :)

ЗЫ: Сто раз тут обсасывали.

Таблица остатки состоит из малого количества колонок, грубо говоря из колонок - айдишник товара, остаток на складе и цена на данный (настоящий) момент (мб это и есть движение.. хотя что такое движение я пока не совсем хорошо понимаю). На любой момент остатки я планировал выводить запросом из таблиц приход и расход. Вот и хотел узнать имеет ли смысл делать их в виде 2-х таблиц или сделать одной.
Если интересует и суммовой учет, то нежно хранить оличество и сумму, но ни как не цену
Хотя бы потому, что Количество*Цена<>Сумма

Naf, может я не совсем правильно выражаюсь в правильных терминах.
В таблице остатки хранится информация на данный момент, т.е. после добавления строчек в таблицы приход/расход апрейтятся поля цена и количество в остатках триггерами. А после например продажи товара появляются строки в таблице расход, где и записывается сколько было продано и по какой цене, т.е. по этой таблице можно будет вести учет, например, по месяцам сколько и на какую сумму было продано.
...
Рейтинг: 0 / 0
28.05.2009, 16:47
    #36013899
Senya_L
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование базы для склада
blest,

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


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