|
|
|
Проектирование бд FIFO, LIFO сертификаты
|
|||
|---|---|---|---|
|
#18+
Подскажите пожалуйста как лучше организовать хранение и отпуск товара со склада, имеющего серитфикаты. Мои рассуждения: В данном случае идёт речь о напитках - пиве :) Оно имеет срок ограниченный срок хранения. Значит надо использовать метод отпуска ФИФО. Где хранить серификаты? Думаю не в справочнике(иначе он рано или поздно разрастётся до огромных размеров, да и нормализация :) ) в таблице приходной накладной для кажного товара. Скажем приходная накладная: её шапка таблю Prohod, каждый товар накладной PrihodIT. В подчинённой таблице PrihodIT, к каждому товару писать сертификат(символьное поле) и поле отметки отпущен товар со склада или нет, для скорости поиска(Булево). При отпуске, буду искать сертификат товара, дата накладной которого минимальна(пришёл первый) и булево поле которого лож(товар ещё неотпущен со склада) и использовать в расходной накладной. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.05.2006, 11:15 |
|
||
|
Проектирование бд FIFO, LIFO сертификаты
|
|||
|---|---|---|---|
|
#18+
Поле сертификат, оп моему замыслу, должно находится в подчинённой таблице, а не как на рисунке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.05.2006, 11:49 |
|
||
|
Проектирование бд FIFO, LIFO сертификаты
|
|||
|---|---|---|---|
|
#18+
Решил попробовать вот так. Каждой позиции в накладной соответствует запись в таблице сертификатов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.05.2006, 18:52 |
|
||
|
Проектирование бд FIFO, LIFO сертификаты
|
|||
|---|---|---|---|
|
#18+
Навскидку это должно быть многие-ко-многим ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.05.2006, 19:53 |
|
||
|
Проектирование бд FIFO, LIFO сертификаты
|
|||
|---|---|---|---|
|
#18+
Какая именно связь? Не вижу смысла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.05.2006, 21:00 |
|
||
|
Проектирование бд FIFO, LIFO сертификаты
|
|||
|---|---|---|---|
|
#18+
EgorichПодскажите пожалуйста как лучше организовать хранение и отпуск товара со склада, имеющего серитфикаты. Стандартный партионный учет, думаю много раз обсуждался на данном форуме. По поводу сертификата почему "(символьное поле)"? Как я понимаю слово "сертификат" это бумага с датой номером и кем выдан в котором указана дата реализации? Тогда имеем две даты и две строки. EgorichКаждой позиции в накладной соответствует запись в таблице сертификатов А так ли нужно хранить список сертификатов отдельно, т.е. может ли быть несколько партий с одним номером сертификата? EgorichМои рассуждения: В данном случае идёт речь о напитках - пиве :) Оно имеет срок ограниченный срок хранения. Значит надо использовать метод отпуска ФИФО. А если срок хранения кончился? ;) отпускать сначала просроченное? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2006, 16:20 |
|
||
|
Проектирование бд FIFO, LIFO сертификаты
|
|||
|---|---|---|---|
|
#18+
EstetsТогда имеем две даты и две строки. Спасибо, видимо так и сделаю :) EstetsА так ли нужно хранить список сертификатов отдельно, т.е. может ли быть несколько партий с одним номером сертификата? У меня не такие большие закупки, поэтому я подразумеваю, что сертификат будет соответствовать каждому товару. Может включить поля сертификата в подчинённую таблицу PrihodIT? EstetsА если срок хранения кончился? ;) отпускать сначала просроченное?Поэтому я и буду использовать FIFO :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2006, 23:03 |
|
||
|
Проектирование бд FIFO, LIFO сертификаты
|
|||
|---|---|---|---|
|
#18+
EgorichУ меня не такие большие закупки, поэтому я подразумеваю, что сертификат будет соответствовать каждому товару. Может включить поля сертификата в подчинённую таблицу PrihodIT? В данном случае правильная идея. Единственная проблема что при списании EgorichРешил попробовать вот так. Каждой позиции в накладной соответствует запись в таблице сертификатов. Комментарий к картинке. Чем таблица PRIHOD(T) отличается от RASHOD(T)? Может не стоит плодить таблицы практически совпадающие по структуре, а ограничиться полем "тип накладной"? EgorichПоэтому я и буду использовать FIFO :) Это я к тому что может быть имеет смысл использовать FIFO по сроку годности и по партиям прихода, а не только по партиям? Правда это вопрос спорный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2006, 09:46 |
|
||
|
Проектирование бд FIFO, LIFO сертификаты
|
|||
|---|---|---|---|
|
#18+
авторА так ли нужно хранить список сертификатов отдельно, т.е. может ли быть несколько партий с одним номером сертификата?Однозначно надо хранить список отдельно. Никакой жёсткой привязки к ФИФО ! Иначе высока вероятность, что фактический товар не будет соответствовать выданому по документам. Почему ? Обычные накапливающиеся ошибки выдачи/приёмки/возврата/замены. Самое правильное в момент отгрузки вручную (!) переписывать сроки отобранного товара и подбирать под эти сроки сертификаты. Геморойно ? Да, но это будет работать железно ! А вот с автоматическим подбором сертификатов будет сплошной кошмар. Через 1-2месяца половина отгруженного товара будет с неверными сертификатами. Не верите ? Тогда сделайте жёсткую привязку и убедитесь сами ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2006, 10:30 |
|
||
|
Проектирование бд FIFO, LIFO сертификаты
|
|||
|---|---|---|---|
|
#18+
авторА так ли нужно хранить список сертификатов отдельно, т.е. может ли быть несколько партий с одним номером сертификата? Да, это обычная ситуация. автор по сроку годности и по партиям прихода, а не только по партиям Срок годности является одним из атрибутов партии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2006, 11:32 |
|
||
|
Проектирование бд FIFO, LIFO сертификаты
|
|||
|---|---|---|---|
|
#18+
LSV авторА так ли нужно хранить список сертификатов отдельно, т.е. может ли быть несколько партий с одним номером сертификата?Однозначно надо хранить список отдельно. Номер сертификата это такая-же справочная информация как и срок реализации смысл в хранении "списка сроков реализации"? LSVНикакой жёсткой привязки к ФИФО! Иначе высока вероятность, что фактический товар не будет соответствовать выданому по документам. Почему ? Обычные накапливающиеся ошибки выдачи/приёмки/возврата/замены. Честно говоря не работал именно с торговлей, но в других областях, где используется LIFO-FIFO метод ручного выбора партии для списани является достаточно редким исключением. Трудно реализуемым и сложно поддерживаемым. Так что я бы не был настолько категоричен. А вопросы с несоответствием, решаются "человеческим фактором" (строгостью учета) и переодической инвентаризацией склада. LSVСамое правильное в момент отгрузки вручную (!) переписывать сроки отобранного товара и подбирать под эти сроки сертификаты. Ни кто не мешает списывать товар со склада в разрезе "приходных партий", а в перечень накладной забивать номера (руками или автоматом) подходящих по срокам сертификатов (если вообще это надо). 2:Egorich Вообще партионный учет достаточно сложная в реализации вещь, особенно если принимать во внимание частичный возврат, потери, инвентаризацию и пр, и используется в бухгалтерии для правильного расчета балансовой стоимости и прибыли/убытков. Так ли это вам надо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2006, 12:22 |
|
||
|
Проектирование бд FIFO, LIFO сертификаты
|
|||
|---|---|---|---|
|
#18+
Estets я уже думал над тем, чтобы приход и расход вести в одной таблице и добавить поле bit логическое - приход, либо расход. Будет легче писать запросы? У меня понятия партии не будет, поскольку закупки идут небольшие и каждому товару я всегда беру отдельно сертификат. Подумываю может добавить сертификат прямо в товар PrihodIT? LSVНикакой жёсткой привязки к ФИФО! Иначе высока вероятность, что фактический товар не будет соответствовать выданому по документам. Почему ? Обычные накапливающиеся ошибки выдачи/приёмки/возврата/замены. В 1С там это, как я понимаю реализовано. Почему это не может быть реализовано у меня :) Да согласен это сложно. По крайней мере я так думаю сейчас :) Но заказчик просит,а совесть у меня не позволяет его заставить это писать каждый раз сертификат руками :) Может тогда мне сделать одну таблицу шапки накладной(приходной и расходной), скажем PaymentDoc, и товары накладной PaymentDocIthems? Где поле типа bit в таблице будет признаком прихода, либо расхода. Таблица Sertificat будет связана с каждым товаром PaymentDocIthems. Неясно мне, как реализовать механизм FiFo. Либо хотя бы предоставлять выбор пользователю сертификатов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2006, 15:03 |
|
||
|
Проектирование бд FIFO, LIFO сертификаты
|
|||
|---|---|---|---|
|
#18+
EstetsЧестно говоря не работал именно с торговлей... А вопросы с несоответствием, решаются "человеческим фактором" (строгостью учета) и переодической инвентаризацией склада.Да что Вы говорите ! ! ! Строгостью ? Сразу видно, что не работали в торговле. Ошибки учёта есть всегда и в немалом количестве. Прикажете делать пересчёт ежедневно ? Глупо. Единственный выход - в системе возможность привязки сертификатов к товару должна быть гибкой, а не жёстко вшитой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2006, 15:13 |
|
||
|
Проектирование бд FIFO, LIFO сертификаты
|
|||
|---|---|---|---|
|
#18+
Вообще-то это не FIFO, а FEFO (Expired или что-то похожее в аббревиатуре). А это клинически отличается от FIFO. При FIFO необходимо смотреть дату прихода (соответственно, у всей номенклатуры в одном приходе она будет одинаковая), а при FEFO - дату истечения срока конкретной позиции в приходе + учет, что срок хранения зависит от условий хранения и не определяется только номенклатурой как таковой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2006, 15:37 |
|
||
|
Проектирование бд FIFO, LIFO сертификаты
|
|||
|---|---|---|---|
|
#18+
LSV EstetsА вопросы с несоответствием, решаются "человеческим фактором" (строгостью учета)Да что Вы говорите ! ! ! Строгостью ? Сразу видно, что не работали в торговле. Ошибки учёта есть всегда и в немалом количестве. Примите на склад нормального человека положите ему оклад в 800$ с условием раз в месяц аудит, есть несоответствие -50% зарплаты, 2 ошибки - увольнение. И знаете, "ошибки" исчезнут сами собой ;))) Возьмите средний банк около 300 человек оперируют с большими суммами денег, а сколько ошибок? Очень мало. А почему? Компетентность, контроль и ответственность вплодь до уголовной. И это все "человеческий фактор". LSVЕдинственный выход - в системе возможность привязки сертификатов к товару должна быть гибкой, а не жёстко вшитой. Желательно иметь такую возможность, но выход не единственный. Пришла одна партия а списали другую??? Правилнее сделать документ, которым при нахождении ошибки, можно было бы изменить текущие партии на складе, а списать все равно FIFO. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2006, 20:13 |
|
||
|
Проектирование бд FIFO, LIFO сертификаты
|
|||
|---|---|---|---|
|
#18+
Estets Примите на склад нормального человека положите ему оклад в 800$ с условием раз в месяц аудит, есть несоответствие -50% зарплаты, 2 ошибки - увольнение. И знаете, "ошибки" исчезнут сами собой ;))) . ни-фи-га сдается мне (извините если ошибся) ни в банке, ни на складе вы не работали. и даже представления о такой работе не имеете... теоретик... (это не подпись :)) ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2006, 20:27 |
|
||
|
Проектирование бд FIFO, LIFO сертификаты
|
|||
|---|---|---|---|
|
#18+
Egorich Estets я уже думал над тем, чтобы приход и расход вести в одной таблице и добавить поле bit логическое - приход, либо расход. Будет легче писать запросы? Практически на любых базах лучше всего не использовать поле bit. Для таких случаев я напимер использовал int 1, -1. EgorichНеясно мне, как реализовать механизм FiFo. Либо хотя бы предоставлять выбор пользователю сертификатов. Мда, но все равно в двух словах: Код: plaintext 1. 2. 3. 4. 5. 6. 7. По введенной накладной вносим три записи OP_TYPEOP_QTYGOODS_IDSERT_NOEXP_DATE110BAL70012301/05/06110BAL70044401/04/06110BAL70077701/05/06 Вносим накладную на продажу 15 бутылок балтики, для этого получаем список текущих партий: Код: plaintext 1. 2. 3. 4. 5. QTYSERT_NOEXP_DATE100012301/05/06100044401/04/06100077701/05/06 Сортируем его по EXP_DATE, SERT_NO QTYSERT_NOEXP_DATE100044401/04/06100012301/05/06100077701/05/06 Открываем курсор, или идем клиентом по записям Напомню, списывается 15 штук. Начинаем заполнять таблицу T_MOV записями по списанию, первая партия 10 штук, записываем в T_MOV данные из партии и нужное количество OP_TYPEOP_QTYGOODS_IDSERT_NOEXP_DATE-110BAL70044401/04/06 Вторая партия 10 штук а нам надо списать всего 5 OP_TYPEOP_QTYGOODS_IDSERT_NOEXP_DATE-110BAL70044401/04/06-15BAL70012301/05/06 итого в таблице движения OP_TYPEOP_QTYGOODS_IDSERT_NOEXP_DATE110BAL70012301/05/06110BAL70044401/04/06110BAL70077701/05/06-110BAL70044401/04/06-15BAL70012301/05/06 Проверяем остаток Код: plaintext 1. 2. 3. 4. получаем GOODS_IDQTYSERT_NOEXP_DATEBAL750012301/05/06BAL7100077701/05/06 Это конечно сильно упрощенный, но рабочий механизм FIFO, LIFO получается сортировкой таблицы партий в обратную сторону, а "Возможность выбора партий вручную" реализуется как- показать пользователю список партий и пусть он сам нужную сумму по строкам раскидает ;) Уф. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2006, 20:49 |
|
||
|
Проектирование бд FIFO, LIFO сертификаты
|
|||
|---|---|---|---|
|
#18+
proposed amendment теоретик... (это не подпись :)) ) Подпись подпись ;))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2006, 20:50 |
|
||
|
Проектирование бд FIFO, LIFO сертификаты
|
|||
|---|---|---|---|
|
#18+
Estets proposed amendment теоретик... (это не подпись :)) ) Подпись подпись ;))) :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2006, 20:53 |
|
||
|
Проектирование бд FIFO, LIFO сертификаты
|
|||
|---|---|---|---|
|
#18+
Egorich === Вы уже потратили кучу времени на решение простой задачи. Если действительно нужны структуры (сроки, серификаты), заберите готовые из решения для комбината общепита на iscra.ru (в описании). Там срок годности основной атрибут и это реальные решения. На вопросы всегда ответят с адреса support@iscrasoft.com. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2006, 01:32 |
|
||
|
Проектирование бд FIFO, LIFO сертификаты
|
|||
|---|---|---|---|
|
#18+
Спасибо за помощбь буду пробовать :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2006, 08:18 |
|
||
|
Проектирование бд FIFO, LIFO сертификаты
|
|||
|---|---|---|---|
|
#18+
Estets...Вносим накладную на продажу 15 бутылок балтики, для этого получаем список текущих партий: Код: plaintext 1. 2. 3. 4. 5. А что будет, когда в T_MOV накопится десять миллионов записей? !!! Нельзя короткую операцию (списание одной единицы товара) основывать на запросах, длительность выполнения которых зависит от кол-ва записей в таблицах, которые растут линейно с течением времени !!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2006, 22:38 |
|
||
|
Проектирование бд FIFO, LIFO сертификаты
|
|||
|---|---|---|---|
|
#18+
EstetsПрактически на любых базах лучше всего не использовать поле bit. Для таких случаев я напимер использовал int 1, -1. Если не сложно, уточните почему именно "лучше всего не использовать" ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2006, 16:53 |
|
||
|
Проектирование бд FIFO, LIFO сертификаты
|
|||
|---|---|---|---|
|
#18+
Estets , как я понимаю, различие будет уже не в одном бите? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2006, 08:03 |
|
||
|
Проектирование бд FIFO, LIFO сертификаты
|
|||
|---|---|---|---|
|
#18+
xLock EstetsПрактически на любых базах лучше всего не использовать поле bit. Для таких случаев я напимер использовал int 1, -1. Если не сложно, уточните почему именно "лучше всего не использовать" ? А смысл? Никакой экономии пространства, все равно сервер будет хранить байт. Не все клиентские приложения понимают битовые поля, либо конвертируют их в int(shortint,tinyint). Зачем лишние расходы? Плюс выше я описывал, как легко получить сумму приходов/расходов SUM(OP_QTY*OP_TYPE), при битовом поле это решается через CASE. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2006, 09:56 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=33708313&tid=1545247]: |
0ms |
get settings: |
9ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
160ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
84ms |
get tp. blocked users: |
2ms |
| others: | 233ms |
| total: | 527ms |

| 0 / 0 |
