|
|
|
Остатки на любую дату
|
|||
|---|---|---|---|
|
#18+
Всем привет! Решил создать програмку,которая учитывает матер-произв.запасы, типа "Склад" : -) Задачи: 1.Просмотр остатков в архиве 2.Проводки в архиве Не хочу изобретать велосипед еще раз, подскажите стандартную схему таблиц в "Складе" : -). Связьки какие? Думаю вообще у "склада","бухглатерии " - одна схема. Те же остатки на тек.дату, возможность проводок архиве , остатки на любую дату- схема одинаковая. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2006, 05:18 |
|
||
|
Остатки на любую дату
|
|||
|---|---|---|---|
|
#18+
не понятно чего сюда запостил вопрос :) стандартные - хз. я делаю так 3 таблицы1. Товар (перечень товаров на складе): - id (identify) - описание_товара - ... 2. Приход (опреации прихода на склад): - id (identify) - Товар_id - дата_прихода - количество - цена_прихода - ... 3. Расход (операции списания со склада): - id (identify) - Приход_id - дата_расхода - количество - цена_расхода - ...знаю статистику (остаток, цены и тд) на любую дату могу выполнить списание с любого прихода (если количество позволяет ;) ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2006, 06:00 |
|
||
|
Остатки на любую дату
|
|||
|---|---|---|---|
|
#18+
По-моему дешевле объединить таблицы (2) и (3) - у прихода знак "+", у расхода "-" Вот тут и остатки легче считать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2006, 07:13 |
|
||
|
Остатки на любую дату
|
|||
|---|---|---|---|
|
#18+
ок,парни ,спасибо, сделаю как вы сказали: -) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2006, 08:29 |
|
||
|
Остатки на любую дату
|
|||
|---|---|---|---|
|
#18+
Я бы использовал схему с отдельной таблицей остатков на даты. Иначе в будущем для получения остатка на произвольный день придется перелопачивать так или иначе все приходы/расходы. Соответственно, удалить "старые накладные" не получится. А вообще это - в "Проектирование БД". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2006, 08:34 |
|
||
|
Остатки на любую дату
|
|||
|---|---|---|---|
|
#18+
Четыр таблицы: товары, склады, движения, остатки В движениях все движения (и + и -), в остатках остатки после последнего движения. P.S. Лучше хранить не цену, а сумму. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2006, 10:31 |
|
||
|
Остатки на любую дату
|
|||
|---|---|---|---|
|
#18+
ak4 Подхода всего 2: 1. Хранить текущие остатки и по приходу расходу рассчитывать остатки на дату. Недостаток - неэффективно и чревато невосстановимыми ошибками. 2. Хранить остатки на конец периодов и по приходу расходу рассчитывать остатки на дату. Недостаток - текущий остаток надо рассчитывать и необходима процедура закрытия-открытия периода. Имхо чаще применяется 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2006, 10:46 |
|
||
|
Остатки на любую дату
|
|||
|---|---|---|---|
|
#18+
gybsonP.S. Лучше хранить не цену, а сумму.+1 Сумма всегда точно известна, а вот дробность цены при этом может не укладываться ни в какую размерность - например, купили какой-нибудь блок из 3-х предметов за 100р. :) А может хранить и то и другое - "пригодицца". Еще в складском учете бывает необходимость учитывать сразу в 2-х "системах измерения" - гайки закупаются обычно килограммами, а расходуются штуками. Поэтому проще внести полученную сумму, а уже в зависимости от ситуации пилить сумму. PS - вспомнилось: Продали мы однажды в "почтовый ящик" 100м коаксиала. Поскольку "привычной" единицей измерения были для нас "штуки", в накладной значилось прмерно: "Кабель Ethernet, 10р/м, 103 шт." Пока накладную не переделали, складовщик отказывался принимать бухтой, предлагалось порезать на метровые отрезки, чтобы "сошлось". :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2006, 10:51 |
|
||
|
Остатки на любую дату
|
|||
|---|---|---|---|
|
#18+
мод2. Хранить остатки на конец периодов и по приходу расходу рассчитывать остатки на дату. Недостаток - текущий остаток надо рассчитывать и необходима процедура закрытия-открытия периода. Имхо чаще применяется 2.Зачем обязательно открытие? Если нужно закрывать отчетный период от такой процедуры все равно никуда не денешься. :) А не нужно - считаем период днем и всего делов-то. В процедуре прихода/расхода (я бы в триггере делал) пересчитывается остаток за день, в котрый происходило "движение". Обязательно предусмотреть механизм, позволяющий удалять "накладные" без пересчета остатков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2006, 11:03 |
|
||
|
Остатки на любую дату
|
|||
|---|---|---|---|
|
#18+
DeColo®esЗачем обязательно открытие? Обязательно предусмотреть механизм, позволяющий удалять "накладные" без пересчета остатков. В этом и фокус: для изменений задним числом надо открыть все периоды, начиная с изменяемого, провести изменения, а потом все снова закрыть по порядку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2006, 12:56 |
|
||
|
Остатки на любую дату
|
|||
|---|---|---|---|
|
#18+
мод DeColo®esЗачем обязательно открытие? Обязательно предусмотреть механизм, позволяющий удалять "накладные" без пересчета остатков. В этом и фокус: для изменений задним числом надо открыть все периоды, начиная с изменяемого, провести изменения, а потом все снова закрыть по порядку.Зачем "открывать/закрывать"? Пусть процедура нужные остатки (записи в таблице остатков) меняет и все. Если нужен контроль неизменности - пусть проверяется, какие периоды можно менять, а какие - нет. В чем проблема-то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2006, 12:58 |
|
||
|
Остатки на любую дату
|
|||
|---|---|---|---|
|
#18+
2мод Какими такими невосстановимыми ошибками? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2006, 15:23 |
|
||
|
Остатки на любую дату
|
|||
|---|---|---|---|
|
#18+
DeColo®es В чем проблема-то? В зависимостях одних остатков от других. Не изобретайте велосипед, метод 2 давно используется во всех серьезных учетных системах (типа банков). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2006, 15:45 |
|
||
|
Остатки на любую дату
|
|||
|---|---|---|---|
|
#18+
jikezКакими такими невосстановимыми ошибками? Если текущий остаток в рез-те ошибки станет неверным, его уже не восстановить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2006, 15:46 |
|
||
|
Остатки на любую дату
|
|||
|---|---|---|---|
|
#18+
модВ зависимостях одних остатков от других. Не изобретайте велосипед, метод 2 давно используется во всех серьезных учетных системах (типа банков).Вы действительно видели ВСЕ банковские системы?! И подробности реализации? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2006, 15:49 |
|
||
|
Остатки на любую дату
|
|||
|---|---|---|---|
|
#18+
2мод если есть полная история всех проводок то восстановить последний остаток не проблема ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2006, 16:26 |
|
||
|
Остатки на любую дату
|
|||
|---|---|---|---|
|
#18+
модПодхода всего 2: 1. Хранить текущие остатки и по приходу расходу рассчитывать остатки на дату. Недостаток - неэффективно и чревато невосстановимыми ошибками. 2. Хранить остатки на конец периодов и по приходу расходу рассчитывать остатки на дату. Недостаток - текущий остаток надо рассчитывать и необходима процедура закрытия-открытия периода. Имхо чаще применяется 2. По варианту 2 - зачем процедура закрытия-открытия периода? Измерение времени не дискретное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2006, 16:36 |
|
||
|
Остатки на любую дату
|
|||
|---|---|---|---|
|
#18+
Насчет банков. Есть понятие времени, а есть опердня. В банках применяется опердень. для справки: Опердень - оперативный день. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2006, 16:37 |
|
||
|
Остатки на любую дату
|
|||
|---|---|---|---|
|
#18+
jikezесли есть полная история всех проводок то восстановить последний остаток не проблема Конечно, но как правило старые данные удаляют ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2006, 17:07 |
|
||
|
Остатки на любую дату
|
|||
|---|---|---|---|
|
#18+
Валентин КПо варианту 2 - зачем процедура закрытия-открытия периода? Измерение времени не дискретное. Закрытие - подбить бабки за период и сформировать остатки Открытие - разрешить изменения в этом периоде Период д.б. дискретным день, неделя, месяц ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2006, 17:11 |
|
||
|
Остатки на любую дату
|
|||
|---|---|---|---|
|
#18+
Дискретность измерение - понятие синтетическое, а не реальное. Т.е. шкала дат непрерывная. Остатки на дату не подразумевают закрытие или открытие периода, это всего лишь отчет !!! а не модель хранения данных. Напомню, что текущие остатки не подразумевают остатки на сегодня или на поледний момент, т.к. тожно провести документы будущим периодом. Остальное самостоятельно :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2006, 17:13 |
|
||
|
Остатки на любую дату
|
|||
|---|---|---|---|
|
#18+
Закрыть - открыть доступ к изменениям. ДЛЯ ЭТОГО не нужно ни закрытие ни открытие периодов !!! Это доступ к данным за определенной точкой времени ИЛИ ПРОСТО 1 дата ! ниже которой документы нельзя менять. И нечего городить огород и изобретать мопед, который не мой, я просто разместил объяву :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2006, 17:15 |
|
||
|
Остатки на любую дату
|
|||
|---|---|---|---|
|
#18+
Многое зависит от объемов данных если их менее лямя (операций) то думаю что вариант расчета в онлайне по сумме операций прокатит везде тоже самое если нужно "точечные выборки" - у меня на базе в 500 000 000 строк выборка из 100 000 суммируется за 0,254 сек так что надо прикладывать к условиям задачи а не проектировать многотонный самоствал, если человеку надо перевозить на дачу мешок картошки раз в год ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2006, 18:02 |
|
||
|
Остатки на любую дату
|
|||
|---|---|---|---|
|
#18+
существует простое правило: храните те данные, к которым чаще всего обращаются.... текущий остаток. Остальное все можно вытянуть запросами, впрочем как и пересчитать текущий остаток по транзакциям. Впрочем об этом здесь уже говорилось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2006, 01:54 |
|
||
|
Остатки на любую дату
|
|||
|---|---|---|---|
|
#18+
Создал отдельную табличку - даты проводок- для хранения остатка по дням... Допустим юзер решил ввести расход архднем.... Тогда придется нарастающим исправлять остатки в табличке "Даты_проводок" ,а если вдруг красное сальдо в каком нить дне? Вы как поступаете в этом случае? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2006, 09:13 |
|
||
|
|

start [/forum/topic.php?fid=32&fpage=129&tid=1544901]: |
0ms |
get settings: |
8ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
166ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 213ms |
| total: | 484ms |

| 0 / 0 |
