|
|
|
Учёт чего-либо. Принцип хранения отдельно взятого чего-либо. Короче внутри :)
|
|||
|---|---|---|---|
|
#18+
Доброго дня. Заинтересовал меня следущий вопрос. Как лучше/удобней/правильней хранить отдельно взятый элемент учёта? Вот что я имею ввиду. допустим проектируем базу для учёта товара. Два варианта: 1. для каждого товара ложим отдельную запись в таблицу товаров 2. для каждой отдельно взятой категории товара просто держим скажем пару полей. с общим кол-вом товара в продаже и проданным. первый пункт самый очевидный именно так я всё время и делаю второй пункт.... кроме геморая ничего не вижу. кто что скажет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2006, 15:39 |
|
||
|
Учёт чего-либо. Принцип хранения отдельно взятого чего-либо. Короче внутри :)
|
|||
|---|---|---|---|
|
#18+
песок не пробовали продавать? (для каждой отдельной песчинки....бугога) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2006, 16:26 |
|
||
|
Учёт чего-либо. Принцип хранения отдельно взятого чего-либо. Короче внутри :)
|
|||
|---|---|---|---|
|
#18+
ну собственно продается не товар,а товар единицами измерения.так что с песком все в норме.в нормальной бд должны быть таблицы единиц измерения, вомзожных единиц измерения для типа товара и набор таблицы конверсии (например, 1 шт сахара = 250 граммам, 1 кг пуха=2 куб метра пуха), причем в зависимости от наворотов таблицы для конверсии м/быть довольно сложными (всякие там пресовки,усушки и т.д.). А вообще вопрос неясен: что значит "ложим отдельную запись в таблицу товаров"?в номенклатурный справочник?в таблицу движений товара? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2006, 16:38 |
|
||
|
Учёт чего-либо. Принцип хранения отдельно взятого чего-либо. Короче внутри :)
|
|||
|---|---|---|---|
|
#18+
ShtockА вообще вопрос неясен: что значит "ложим отдельную запись в таблицу товаров"?в номенклатурный справочник?в таблицу движений товара? хм. давайте так. есть справочник/справочники по которые описывают номенклатуру. тоесть сам факт существования товара. теперь на склад приезжает скажем две еденицы одинакового товара. две бутылки пифа. и теперь в таблице товаров(движений) мы делаем по записе для каждого товара. две бутылки пива две записи ЛИБО в таблице содержиться одна запись для этого типа товара, где в ячейке количество мы ставим двоечку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2006, 17:10 |
|
||
|
Учёт чего-либо. Принцип хранения отдельно взятого чего-либо. Короче внутри :)
|
|||
|---|---|---|---|
|
#18+
_QWE_теперь на склад приезжает скажем две еденицы одинакового товара. две бутылки пифа. и теперь в таблице товаров(движений) мы делаем по записе для каждого товара. две бутылки пива две записи ЛИБО в таблице содержиться одна запись для этого типа товара, где в ячейке количество мы ставим двоечку.А зачем первый способ? Точнее, зачем он как единственный? Лучьше второй способ + отдельно записи для товаров, которые учитываются поштучно (автомобили и водка, например). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2006, 17:51 |
|
||
|
Учёт чего-либо. Принцип хранения отдельно взятого чего-либо. Короче внутри :)
|
|||
|---|---|---|---|
|
#18+
Я же говорю-тут зависит от того,какой учет вам нужен-если минимальный квант учета - 2 бутылки пива,то пришла 1 единица двух бутылок, если надо учитывать побутыльно-пришла одна единица одной бутылки.Это все настройи тех самых единиц измерения.Не должно быть разницы,если по факту учитывается одно и тоже.можно же одновременно с ящиками пива учитывать и литры и бутылки.ТОлько надо делать не 3 движения каждого,а одно минимального учетного кванта и иметь схему конверсии попугаев в бегемоты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2006, 09:19 |
|
||
|
Учёт чего-либо. Принцип хранения отдельно взятого чего-либо. Короче внутри :)
|
|||
|---|---|---|---|
|
#18+
alexeyvgА зачем первый способ? Точнее, зачем он как единственный? так я вот и хотел бы узнать как ещё люди делают. Для меня пока этот способ единственный, потому как второй мне уж очень "неприятен"....... Первый способ простой с токи зрения изменения состояний. взял адишник, поменял состояние товара. но "напряжный" с точки зрения отчётности. постоянно надо юзать агрегатные фыункции и бегать по таблице взад вперёд, и вот тут будет херовато если считать каждую песчинку песка. Второй способ получше в отчётности но похуже с точки зрения, как бы сказать. скажу целосности. Берём простую ситуацию скажем для одного типа товара у нас существует одна запись с тремя полями. в продаже/продано/списано. После приезда двух бутылок ставим "в продаже" двойку. Бутылка продалась? Декрементируем поле "в продаже", инкрементируем поле "продано". И так далее. ShtockТОлько надо делать не 3 движения каждого,а одно минимального учетного кванта и иметь схему конверсии попугаев в бегемоты. Конверсию пока отодвигаем в сторону. Тоесть грубого говоря вы за вторую схему? Я правильно понял? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2006, 10:47 |
|
||
|
Учёт чего-либо. Принцип хранения отдельно взятого чего-либо. Короче внутри :)
|
|||
|---|---|---|---|
|
#18+
в общем случае да ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2006, 11:50 |
|
||
|
Учёт чего-либо. Принцип хранения отдельно взятого чего-либо. Короче внутри :)
|
|||
|---|---|---|---|
|
#18+
автор Второй способ получше в отчётности но похуже с точки зрения, как бы сказать. скажу целосности. Отчего же он похуже с точки зрения целостности? Вообще-то ровно наборот. У Вас, получается, нет в таблице естественного primary key, две записи о бутылках пива различаются только суррогатным айдишником. Будут проблемы с тем, чтобы понять, какую именно бутылку из двух продали или уценили. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2006, 17:35 |
|
||
|
Учёт чего-либо. Принцип хранения отдельно взятого чего-либо. Короче внутри :)
|
|||
|---|---|---|---|
|
#18+
Кот Матроскин автор Второй способ получше в отчётности но похуже с точки зрения, как бы сказать. скажу целосности. Отчего же он похуже с точки зрения целостности? Вообще-то ровно наборот. У Вас, получается, нет в таблице естественного primary key, две записи о бутылках пива различаются только суррогатным айдишником. Будут проблемы с тем, чтобы понять, какую именно бутылку из двух продали или уценили.+1. Вы как себе складской учет представляете, в примитиве хотя бы? Подумайте в сторону партий, как варианта объединения 1 и 2 способов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2006, 07:19 |
|
||
|
Учёт чего-либо. Принцип хранения отдельно взятого чего-либо. Короче внутри :)
|
|||
|---|---|---|---|
|
#18+
возвращаясь к единицам продажи-партия и есть единица измерения.просто она может быть и из одной бутылки (там можно и ставить цену фактической оплаты меньше,чем по прайсу и ставить причину изменения цены - скидка например по истечению срока годности) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2006, 10:08 |
|
||
|
Учёт чего-либо. Принцип хранения отдельно взятого чего-либо. Короче внутри :)
|
|||
|---|---|---|---|
|
#18+
asdfghjklВы как себе складской учет представляете, в примитиве хотя бы? Туго представляю, потому и прошу помощи зала. Что я не могу проникнуться. Плиз объясните ещё как-то. Что касается партий. То у меня в таблица товаров есть форейнкей на таблицу партий. Что касается того что могут быть проблемы с тем, чтобы понять, какую именно бутылку из двух продали или уценили, хм.. ну если они одинаковые то какая разница? Если допустим они отличаються по дате изготавления, то что мешает делать выборку учитывая и этот фактор также? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2006, 13:56 |
|
||
|
Учёт чего-либо. Принцип хранения отдельно взятого чего-либо. Короче внутри :)
|
|||
|---|---|---|---|
|
#18+
_QWE_ asdfghjklВы как себе складской учет представляете, в примитиве хотя бы?Туго представляю, потому и прошу помощи зала. Что я не могу проникнуться. Плиз объясните ещё как-то. Что касается партий. То у меня в таблица товаров есть форейнкей на таблицу партий. Что касается того что могут быть проблемы с тем, чтобы понять, какую именно бутылку из двух продали или уценили, хм.. ну если они одинаковые то какая разница? Если допустим они отличаються по дате изготавления, то что мешает делать выборку учитывая и этот фактор также?В примитиве - складской учет должен обеспечить достаточную уникальность хранимого, с возможностью выбора нужного и детализации текущих остатков. Стандартное решение - иерархия свойств. Как правило верхний уровень "материал". Дальше - как придется. Кто дерево из материалов строит, расширяя аналитику ("Доска"-"Доска 15мм"), кто переходит в другую плоскость - партии. Партия также может нести в себе набор аналитик. Для алкоголя можно задействовать номер партии ЕГАИС и дату розлива, к примеру. :-) И далее - пофигу, какая из кучи продана, уникальность и оценка сохраняются. Технические аспекты зависят от среды реализации. Чаво автоматизируем-то?! :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2006, 06:01 |
|
||
|
Учёт чего-либо. Принцип хранения отдельно взятого чего-либо. Короче внутри :)
|
|||
|---|---|---|---|
|
#18+
asdfghjklЧаво автоматизируем-то?! :-) В моём случае это автоматизация учёта всякой одежды. У меня есть справочники описывающие одежду это категории, производители, модели, размеры... Есть партии, где есть дата, затраты на доставку и тому подобное. И есть собсно говоря таблица товаров. где каждый товар представлен отдельной записью. по форейнкеям я могу определить и партию и модель и так далее. Грубо говоря так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2006, 12:54 |
|
||
|
Учёт чего-либо. Принцип хранения отдельно взятого чего-либо. Короче внутри :)
|
|||
|---|---|---|---|
|
#18+
_QWE_В моём случае это автоматизация учёта всякой одежды. У меня есть справочники описывающие одежду это категории, производители, модели, размеры... Есть партии, где есть дата, затраты на доставку и тому подобное. И есть собсно говоря таблица товаров. где каждый товар представлен отдельной записью. по форейнкеям я могу определить и партию и модель и так далее. Грубо говоря так.Ну и чудно. Если я правильно понял, товар уже несет в себе максимальную детализацию. Теперь делаем контейнер, который будет хранить пересечение товар+склад[+чего там еще] как ключ. Полями данных будут количества разного рода, возможно деньги, пр. Получили таблицу запасов на сейчас. :-) Прочие обвязки - уже как бантики. Так устроит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2006, 04:07 |
|
||
|
Учёт чего-либо. Принцип хранения отдельно взятого чего-либо. Короче внутри :)
|
|||
|---|---|---|---|
|
#18+
asdfghjklПрочие обвязки - уже как бантики. Так устроит? Вполне... Просто хотелось бы вытянуть голову из "панцыря" и оглядетсья вокруг. Но по сию секунду не могу вникнуться в способ номер два, описанный мной выше :( Это ещё надо обсудить второй способ с точки зрения одновременной работы многих пользователей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2006, 14:12 |
|
||
|
Учёт чего-либо. Принцип хранения отдельно взятого чего-либо. Короче внутри :)
|
|||
|---|---|---|---|
|
#18+
_QWE_ asdfghjklПрочие обвязки - уже как бантики. Так устроит? Вполне... Просто хотелось бы вытянуть голову из "панцыря" и оглядетсья вокруг. Но по сию секунду не могу вникнуться в способ номер два, описанный мной выше :(Ничего такого в "способе номер два" нет. Хочется хранить разные количества в одной ячейке запаса - храните. Дело вкуса. _QWE_Это ещё надо обсудить второй способ с точки зрения одновременной работы многих пользователей.А эта тема абсолютно отдельная и способа хранения не касается. :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2006, 08:37 |
|
||
|
Учёт чего-либо. Принцип хранения отдельно взятого чего-либо. Короче внутри :)
|
|||
|---|---|---|---|
|
#18+
alexeyvg _QWE_теперь на склад приезжает скажем две еденицы одинакового товара. две бутылки пифа. и теперь в таблице товаров(движений) мы делаем по записе для каждого товара. две бутылки пива две записи ЛИБО в таблице содержиться одна запись для этого типа товара, где в ячейке количество мы ставим двоечку.А зачем первый способ? Точнее, зачем он как единственный? Лучьше второй способ + отдельно записи для товаров, которые учитываются поштучно (автомобили и водка, например). По-видимому, есть такое понятие как партия (bulk). Т.о. если обе бутылки пива принёс за один раз один человек, и ему надо выдать за это одну складскую квитанцию - нужно записать Номер партии Наименование товара Количество Единица измерения1 Пиво 2 Бутылка ну или Номер партии Наименование товара Количество Единица измерения1 Два пива 1 Упаковка А вот если это пиво принесли за два раза или с двух разных источников - надо написать: Номер партии Наименование товара Количество Единица измерения1 Пиво 1 Бутылка2 Пиво 1 Бутылка иначе потом концов не найдёшь. Хотя, если концы искать и не надо, и нам неинтересно, что и откуда взяли, а только что сейчас есть (ларёк...) - надо написать: Наименование товара Количество Единица измеренияПиво 2 Бутылка или Наименование товара Количество Единица измеренияДва пива 1 Упаковка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2006, 11:08 |
|
||
|
Учёт чего-либо. Принцип хранения отдельно взятого чего-либо. Короче внутри :)
|
|||
|---|---|---|---|
|
#18+
автор Теперь делаем контейнер, который будет хранить пересечение товар+склад[+чего там еще] + дата, кол-во, цена, ... операция: приход продажа возврат ... ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2006, 12:47 |
|
||
|
Учёт чего-либо. Принцип хранения отдельно взятого чего-либо. Короче внутри :)
|
|||
|---|---|---|---|
|
#18+
to AlexTheRaven именно так сейчас и есть asdfghjklА эта тема абсолютно отдельная и способа хранения не касается. :-) в приницпе да. согласен. asdfghjklНичего такого в "способе номер два" нет. Хочется хранить разные количества в одной ячейке запаса - храните. Дело вкуса. разве дело вкуса?! Пока у меня за год ~20 тысяч записей. Проекты схожи и очень малы. Ни в одном из них я пока не столкнулся с тем что надо думать над чем то более чем каждый товар отдельная запись. Ни с точки зрения масштабируемости ни производительности ни одновременной работы пользователей и так далее. Очевидный момент привёл 4321 про аналогию с песком, можно взять нечто более реальное. Для примера: в день приходит X партий, где Y моделей товаров по Z штук. Соответственно в первой модели будет X*Y*Z записей, во второй X*Y, очевидно отсюда и растут ноги у проблем с производительностью. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2006, 13:30 |
|
||
|
Учёт чего-либо. Принцип хранения отдельно взятого чего-либо. Короче внутри :)
|
|||
|---|---|---|---|
|
#18+
_QWE_разве дело вкуса?! не знаю, как вы собираетесь работать с "1-й моделью", но 2-я предусматривает, мне кажется, следующие сущности 0. товар (опционально - может быть в партии) 1. партия (шапка, определение) 2. движения (опционально - несколько отдельны сущностей движений - приход/расход/утруска и т.п.) 3. опционально - остатки (текущие/на опорные даты и т.п.) (скажем - на триггерах). т.е. кол-ва считаются не простой сверткой "партий", но А. либо по движениям, (от начала эры - партии обычно стоко не живут). Б. либо по остаткам, а от остатка (если считаете кол-во на дату, на который не сформированы опорные остатки) - по движениям от даты предыдущего остатка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2006, 14:34 |
|
||
|
Учёт чего-либо. Принцип хранения отдельно взятого чего-либо. Короче внутри :)
|
|||
|---|---|---|---|
|
#18+
4321но 2-я предусматривает Есть у меня один таркан относительно второй модели. Который настолько укоренился что я даже боюсь думать о реализации второй модели. Суть страха в том что обработай неправильно значение ячейки, и капец. С точки зрения возникновения ошибки мне кажеться гораздо вероятней тут ошибиться(при апдейте ячейки с кол-вом) или что-то глюкануть, чем с удалением строк. Понятное дело что кто-то может по пьяне и транкейт тейблу выполнить.... но это гораздо маловероятней чем ошибиться обработкой значения ячейки(здесь уместно вспомнить про многопользовательскую работу). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2006, 15:59 |
|
||
|
Учёт чего-либо. Принцип хранения отдельно взятого чего-либо. Короче внутри :)
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Возможно эта дискуссия Вам пригодится. http://www.sql.ru/forum/actualthread.aspx?tid=354422 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2006, 01:49 |
|
||
|
Учёт чего-либо. Принцип хранения отдельно взятого чего-либо. Короче внутри :)
|
|||
|---|---|---|---|
|
#18+
_QWE_разве дело вкуса?! Пока у меня за год ~20 тысяч записей. Проекты схожи и очень малы. Ни в одном из них я пока не столкнулся с тем что надо думать над чем то более чем каждый товар отдельная запись. Ни с точки зрения масштабируемости ни производительности ни одновременной работы пользователей и так далее.Именно его. :-) Пример от AlexTheRaven - нормален как вариант, он уже дает понимание запасов. _QWE_Очевидный момент привёл 4321 про аналогию с песком, можно взять нечто более реальное. Для примера: в день приходит X партий, где Y моделей товаров по Z штук. Соответственно в первой модели будет X*Y*Z записей, во второй X*Y, очевидно отсюда и растут ноги у проблем с производительностью.Что-то мне подсказывает, что есть проблемы с пониманием понятий "запас" и "движение" и их отношений. :-) Не стоит все валить в одну кучу ("таблицу"), обычно это разные "таблицы". Просто удобнее. А проблема - "ой, триггер не обновил остатки!" - от кривизны рук/архитектуры и не более. :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2006, 04:15 |
|
||
|
Учёт чего-либо. Принцип хранения отдельно взятого чего-либо. Короче внутри :)
|
|||
|---|---|---|---|
|
#18+
2Папа Игорь сенкс, почитаем... asdfghjklЧто-то мне подсказывает, что есть проблемы с пониманием понятий "запас" и "движение" и их отношений. :-) Не стоит все валить в одну кучу ("таблицу"), обычно это разные "таблицы". Просто удобнее. А проблема - "ой, триггер не обновил остатки!" - от кривизны рук/архитектуры и не более. :-) возможно проблемы. давайте углубимся чуть глубже в мою архитектуру. если отбросить бантики то вот так. структура таблицы товаров, где у меня каждое изделие представлено отдельно записью, имеет поле статусов(продано/списано/в продаже), поле входящей цены, поле исходящей цены, форейнкей на партию, на тип товара, на подразделение. примерно так. тоесть абсалютно все данные. есть также таблица движений. в моём случае общая для движений и денег и товаров. примерно так по таблице товаров я вижу что есть. тут и остатки и то и сё и пятое и десятое. по таблице движений я вижу историю движения/изменения. если говорит о триггере не обновляющем остатки на конкретную дату и так далее. то это уже бантики. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2006, 14:51 |
|
||
|
Учёт чего-либо. Принцип хранения отдельно взятого чего-либо. Короче внутри :)
|
|||
|---|---|---|---|
|
#18+
asdfghjkl _QWE_разве дело вкуса?! Пока у меня за год ~20 тысяч записей. Проекты схожи и очень малы. Ни в одном из них я пока не столкнулся с тем что надо думать над чем то более чем каждый товар отдельная запись. Ни с точки зрения масштабируемости ни производительности ни одновременной работы пользователей и так далее.Именно его. :-) Пример от AlexTheRaven - нормален как вариант, он уже дает понимание запасов. _QWE_Очевидный момент привёл 4321 про аналогию с песком, можно взять нечто более реальное. Для примера: в день приходит X партий, где Y моделей товаров по Z штук. Соответственно в первой модели будет X*Y*Z записей, во второй X*Y, очевидно отсюда и растут ноги у проблем с производительностью.Что-то мне подсказывает, что есть проблемы с пониманием понятий "запас" и "движение" и их отношений. :-) Не стоит все валить в одну кучу ("таблицу"), обычно это разные "таблицы". Просто удобнее. А проблема - "ой, триггер не обновил остатки!" - от кривизны рук/архитектуры и не более. :-) По-видимому, должна быть таблица "партии" Номер партии Наименование товара Количество Единица измерения Есть на складе1 Пиво 1 Бутылка Нет2 Пиво 5 Бутылка Нет3 Пиво 6 Бутылка Нет4 Два пива 3 Упаковка Нет5 Два пива 1 Упаковка Нет6 Два пива 2 Упаковка Нет7 Два пива 1 Упаковка Да и таблица "движения" Номер партии откуда Номер партии куда Тип перехода1 3 Объединили2 3 Объединили3 4 Упаковали4 5 Разъединили4 6 Разъединили5 NULL Продали6 7 Усушка и сразу видно, сколько упаковали, сколько продали, а сколько "усушили" :). А "остатки" - это как раз Наименование товара Количество Единица измеренияДва пива 1 Упаковка - вьюха, не более... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2006, 16:18 |
|
||
|
Учёт чего-либо. Принцип хранения отдельно взятого чего-либо. Короче внутри :)
|
|||
|---|---|---|---|
|
#18+
AlexTheRaven По-видимому, должна быть таблица "партии" ... и таблица "движения" Номер партии откуда Номер партии куда Тип перехода1 3 Объединили2 3 Объединили3 4 Упаковали4 5 Разъединили4 6 Разъединили5 NULL Продали6 7 Усушка и сразу видно, сколько упаковали, сколько продали, а сколько "усушили" :). А "остатки" - это как раз >>поправлю Номер партии Количество7 1 - вьюха, не более...ну есть некие соображения. например примерно такие: 1. Допустим партия у вас содержит кудыть больше данных. (ну просто характеристик у ей до фига - в т.ч. сроки порчи, и т.п.). 2. Допустим, что мы пользуем версионник. 3. Спрашиваеца: на кера строить версии длинных записей Э"партии", кады "апдейтятся" только поля количеств ("остатков"). - Т.е. имеет смысл поделить на собственно данные (вводим один раз и не трогаем без нужды), и собственно (денормализованный) агрегат - остатки. - уж положено им все время апдейтиться - так и мозгуем только как их сделать быстро обновляемыми. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2006, 17:15 |
|
||
|
Учёт чего-либо. Принцип хранения отдельно взятого чего-либо. Короче внутри :)
|
|||
|---|---|---|---|
|
#18+
4321<...> >>поправлю <...> Ну, я имел в виду именно количество продукта, оставшегося на складе, в зависимости от наименования и вне зависимости от партии. Конечно, по ключику можно всё узнать, но зачем делать в два действия то, что можно сделать в одно? 4321<...>1. Допустим партия у вас содержит кудыть больше данных. (ну просто характеристик у ей до фига - в т.ч. сроки порчи, и т.п.).<...> На 100% согласен. 4321 2. Допустим, что мы пользуем версионник. "Версионник" в данном случае означает "темпоральное расширение СУБД"? Если да - то IMHO экзотика. Если нет - то тоже экзотика: то, что СУБД называется "версионник", совсем не означает, что мы сможем стандартным способом (через SQL) получить доступ к предыдущей версии записи. В лучшем случае - с использованием функций, специфических для конкретной СУБД. 4321 3. Спрашиваеца: на кера строить версии длинных записей Э"партии", кады "апдейтятся" только поля количеств ("остатков"). Чтобы понять, сколько было, сколько стало и куда ушло. Если не строить - перестанут быть видны переходы из одной партии в другую. Лично для меня такой принцип кажется проще, чем городить огород с одним полем, значение которого изменяется во времени. Тем более, таблица при этом остаётся хоть и с трудом, но читаемой без помощи нашей системыю. А это одно из требований ко многим системам учёта. 4321 - Т.е. имеет смысл поделить на собственно данные (вводим один раз и не трогаем без нужды), и собственно (денормализованный) агрегат - остатки. - уж положено им все время апдейтиться - так и мозгуем только как их сделать быстро обновляемыми. Реализация как реализация. Только на мой вкус - сложнее. Наверное, мы, как ни странно, называем остатками разные вещи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2006, 01:07 |
|
||
|
Учёт чего-либо. Принцип хранения отдельно взятого чего-либо. Короче внутри :)
|
|||
|---|---|---|---|
|
#18+
1. классификатор товара - древовидная структура, описывающая группы товара (в общем случае вложенные) 2. справочник товаров - товарная номенклатура 3. таблица партий товара - общие свойства партии (ссылка на прих. документ, накладные расходы, дата прихода и т.д) 4. товарный состав партий (ссылка на товар, кол-во пришло, себестоимость и составляющие, кол-во осталось) 5. таблица списаний (ссылка на партию, ссылка на документ, дата, кол-во). В последней можно также хранить бронь товара (нужен флаг списания - бронирования). Приблизительно в таком роде... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2006, 01:54 |
|
||
|
Учёт чего-либо. Принцип хранения отдельно взятого чего-либо. Короче внутри :)
|
|||
|---|---|---|---|
|
#18+
AlexTheRaven 4321<...> >>поправлю <...> Ну, я имел в виду именно количество продукта, оставшегося на складе, в зависимости от наименования и вне зависимости от партии. Конечно, по ключику можно всё узнать, но зачем делать в два действия то, что можно сделать в одно? .вы можете иметь что угодно. В том числе и ввиду. Партии сплошь и рядом - это "реально" разный товар. Позавчерашний кефир не равен сегодняшнему. И сотатки по нему нужны отдельно. AlexTheRaven 4321 2. Допустим, что мы пользуем версионник. "Версионник" в данном случае означает "темпоральное расширение СУБД"? Если да - то IMHO экзотика. Если нет - то тоже экзотика: то, что СУБД называется "версионник", совсем не означает, что мы сможем стандартным способом (через SQL) получить доступ к предыдущей версии записи. В лучшем случае - с использованием функций, специфических для конкретной СУБД.пример не в том,чтобы получать доступ к версиям, а в том, чтобы не шуршать дисками без надобности. Или вы будете утверждать, что дисковые операции - не узкое место СУБеДей? (кстати, еще вопрос, будут ли при этом лишние перестройки индексов и прочей "неявной" обвязки) Да и для блокировочника - лучше блокировать только те данные, которые реально меняются, а не всю запись. AlexTheRaven 4321 3. Спрашиваеца: на кера строить версии длинных записей Э"партии", кады "апдейтятся" только поля количеств ("остатков"). Чтобы понять, сколько было, сколько стало и куда ушло. Если не строить - перестанут быть видны переходы из одной партии в другую.Тут Вы возражаете не мне. Я собираюсь иметь отстатки, но иметь именно в отдельной сущности (в ней же иметь не только текущие остатки, но и остатки на опорные даты - с тем, чтобы запрос по оборотам за период не приводил к пересчету всех движений с момента первой записи. AlexTheRavenЛично для меня такой принцип кажется проще, чем городить огород с одним полем, значение которого изменяется во времени. Тем более, таблица при этом остаётся хоть и с трудом, но читаемой без помощи нашей системыю. А это одно из требований ко многим системам учёта.мало ли что и кому нравится. По части же "одного из требований" - не понял. Имхо, ничего кроме ХМЛ-подобных систем вас не спасет. В противном случае читаемость - субъективное понятие. Иной идиот и децкие книшки не прочтет. AlexTheRaven 4321- Т.е. имеет смысл поделить на собственно данные (вводим один раз и не трогаем без нужды), и собственно (денормализованный) агрегат - остатки. - уж положено им все время апдейтиться - так и мозгуем только как их сделать быстро обновляемыми. Реализация как реализация. Только на мой вкус - сложнее. Наверное, мы, как ни странно, называем остатками разные вещи.вкус - не критерий. Видимо мы имеем в виду разные задачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2006, 12:12 |
|
||
|
Учёт чего-либо. Принцип хранения отдельно взятого чего-либо. Короче внутри :)
|
|||
|---|---|---|---|
|
#18+
AlexTheRaven Чтобы понять, сколько было, сколько стало и куда ушло. Если не строить - перестанут быть видны переходы из одной партии в другую.а вот это все читается (и считается) из "движений" или вы собираетесь приходы вести в "партиях" а расходы - в "движениях"? так это другая ситуация. Это не "остатки", а "приходы" (вид "движений"). Остатки - суть денормализация, для ускорения работы внутри узкого диапазона дат (в т.ч. - "текущие остатки"). При небольшом времени жизни данных (например мы все время очищаем "устаревшие" данные о полностю израсходованных партих, перемещая их в "архив", плюс время реализации партии всегда невелико) такая денормализация может и не понадобиться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2006, 12:21 |
|
||
|
Учёт чего-либо. Принцип хранения отдельно взятого чего-либо. Короче внутри :)
|
|||
|---|---|---|---|
|
#18+
4321вы можете иметь что угодно. В том числе и ввиду. Неадекватно резко. 4321 Партии сплошь и рядом - это "реально" разный товар. Позавчерашний кефир не равен сегодняшнему. И сотатки по нему нужны отдельно. Позавчерашний кефир - это как раз товар класса "кефир", подкласса "дата производства 2006-12-27". Если мне сегодня привезли позавчерашний кефир - он ничем не отличается от свежего, который мне привезли позавчера. И остаток по нему на сегодняшнее завершение дня будет один. 4321 пример не в том,чтобы получать доступ к версиям, а в том, чтобы не шуршать дисками без надобности. Или вы будете утверждать, что дисковые операции - не узкое место СУБеДей? (кстати, еще вопрос, будут ли при этом лишние перестройки индексов и прочей "неявной" обвязки) Почему в гроссбухе не пишут карандашом и не стирают ластиком? И почему в нём вообще пишут - можно же так запоминать? Принцип учёта - согласованное отображение всех операций. Другой учёт никому не нужен. Способ же реализации учёта может быть разным. 4321 Да и для блокировочника - лучше блокировать только те данные, которые реально меняются, а не всю запись. Блокировку на уровне таблицы, страницы, записи вживую видел. На уровне поля - не видел. IMHO разрушит изоляцию транзакций. Пример: один правит название товара в партии, а другой - количество в той же партии. И что получится? 4321 Тут Вы возражаете не мне. Я собираюсь иметь отстатки, но иметь именно в отдельной сущности (в ней же иметь не только текущие остатки, но и остатки на опорные даты - с тем, чтобы запрос по оборотам за период не приводил к пересчету всех движений с момента первой записи. Я вообще не возражаю против Вашего решения - я высказываю свою точку зрения. И никому её не навязываю. Нужно - имейте. AlexTheRavenмало ли что и кому нравится Почти всегда есть несколько возможных решений и нет объективного способа их сравнения. Особенно в архитектуре. Так что выбор архитектурного решения всегда субъективен. Тот, кто считает, что его решение объективно, обманывает себя. AlexTheRaven По части же "одного из требований" - не понял. Имхо, ничего кроме ХМЛ-подобных систем вас не спасет. В противном случае читаемость - субъективное понятие. Иной идиот и децкие книшки не прочтет. Вы читали XML? Размером... ну хотя бы 10 Кб? В котором конструкции между собой хитро связаны? Хорошая человеко-читаемость "сырого" XML - миф. Хотя согласен, иной человек и бинарник рисунка прочитает, а другому и таблицы Брадиса непонятны. Между тем, требование очень простое. Структура таблиц должна быть понятна специалисту, знающему предметную область. Должна быть возможность скорретировать их сторонними средствами, без знания средств и особенностей реализации. AlexTheRavenвкус - не критерий. Видимо мы имеем в виду разные задачи. Видимо мы имеем в виду разные решения одной задачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2006, 14:36 |
|
||
|
Учёт чего-либо. Принцип хранения отдельно взятого чего-либо. Короче внутри :)
|
|||
|---|---|---|---|
|
#18+
AlexTheRavenПозавчерашний кефир - это как раз товар класса "кефир", подкласса "дата производства 2006-12-27". Если мне сегодня привезли позавчерашний кефир - он ничем не отличается от свежего, который мне привезли позавчера. И остаток по нему на сегодняшнее завершение дня будет один. остаток привезенного позавчера - ваши проблемы , остаток привезенного сегодня позавчерашнего - привезшего (если конечно вы не хотите платить за чужие ошибки) AlexTheRaven 4321Почему в гроссбухе не пишут карандашом и не стирают ластиком? И почему в нём вообще пишут - можно же так запоминать? Принцип учёта - согласованное отображение всех операций. Другой учёт никому не нужен. Способ же реализации учёта может быть разным.не в красную армию. Вам рекомендуют согласованно записать изменение. Не переписывая всю страницу. Вы упираетесь. AlexTheRaven[quot 4321] Да и для блокировочника - лучше блокировать только те данные, которые реально меняются, а не всю запись. Блокировку на уровне таблицы, страницы, записи вживую видел. На уровне поля - не видел. IMHO разрушит изоляцию транзакций. Пример: один правит название товара в партии, а другой - количество в той же партии. И что получится?и я об том же. На хера вам ненужные блоки? Вынесите поле остатков в отдельную таблицу, и его блокировка не приведет к блокированию описания товара(партии). AlexTheRavenВы читали XML? Размером... ну хотя бы 10 Кб? В котором конструкции между собой хитро связаны? Хорошая человеко-читаемость "сырого" XML - миф. Хотя согласен, иной человек и бинарник рисунка прочитает, а другому и таблицы Брадиса непонятны. и я об том же. AlexTheRavenМежду тем, требование очень простое. Структура таблиц должна быть понятна специалисту, знающему предметную область. Должна быть возможность скорретировать их сторонними средствами, без знания средств и особенностей реализации. не обманывайте себя. Прочитать структуру, связи и триггера как минимум вам придется. А если вы не способны прочитать - что вот туда-то валятся триггерами остатки - это ваши проблемы. AlexTheRavenВидимо мы имеем в виду разные решения одной задачи.нудануда. Кто-то имеет в виду решение, кто-то - ... хз что. :0) Будемте толстенькими. И с НГ вас. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2006, 17:31 |
|
||
|
|

start [/forum/topic.php?all=1&fid=32&tid=1544811]: |
0ms |
get settings: |
12ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
93ms |
get topic data: |
14ms |
get forum data: |
4ms |
get page messages: |
154ms |
get tp. blocked users: |
2ms |
| others: | 249ms |
| total: | 557ms |

| 0 / 0 |
