|
|
|
Учет операций с деньгами (приход \ расход \ перемещение) - на проверку
|
|||
|---|---|---|---|
|
#18+
Уважаемые, эта задача учебная, можно строго не судить. Нужно вести учет операций в деньгами (приход \ расход \ перемещение) и считать остаток по счетам. Попробовал спроектировать и на минимальном уровне представить на суд. Итак, есть accounts - СЧТЕА (места храниения денег) idname1Пластик Сбербанк2Р/С Уралсиб doctypes - ТИПЫ ДОКУМЕНТОВ idname1РАСХОД2ПРИХОД3ПЕРЕМЕЩЕНИЕ paydocs - ОПЕРАЦИИ С ДЕНЬГАМИ iddatedoctypeparentidopercodefrom_accountto_accountamount115.08.20152null1null110000217.08.20153null0125000317.08.201512-11null5000417.08.2015121null25000 С операциями ПРИХОД и РАСХОД вопросов не возникло, а с ПЕРЕМЕЩЕНИЕМ пришлось помучаться (и то не уверен, что правильно) так как оно (перемещение) - это 3 строки в paydocs: 1. Перемещение с opercode = "0" 1. Приход с opercode = "1" и parentid = id_перемещения 2. Расход с opercode = "-1" и parentid = id_перемещения На удивление оно работает и я могу получить такие отчеты: idopercodenamedateНа счетС счетаamount11ПРИХОД15.08.2015Пластик Сбербанк --1000020ПЕРЕМЕЩЕНИЕ17.08.2015Р/С Уралсиб Пластик Сбербанк5000 Отчет выше я получаю вот таким запросом Код: sql 1. 2. 3. 4. 5. 6. 7. 8. Подскажите, пойдет ли такая структура БД для этой задачи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 03:44 |
|
||
|
Учет операций с деньгами (приход \ расход \ перемещение) - на проверку
|
|||
|---|---|---|---|
|
#18+
При такой структуре возможны коллизии в данных - в записи "перемещение" указаны одни счета, в дочерних - другие. В этом плане лучше моделировать перемещение не тремя записями, а двумя (у прихода ссылка на расход). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 11:50 |
|
||
|
Учет операций с деньгами (приход \ расход \ перемещение) - на проверку
|
|||
|---|---|---|---|
|
#18+
Кот Матроскин, т.е. фактически документа Перемещения не будет вообще, но не понятно, как вывести список всех документов перемещения (список шапок доков), ведь один документ с doctype='Перемещение' я разобью на 2 с doctype='1' и '2' Приход и Расход ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 16:55 |
|
||
|
Учет операций с деньгами (приход \ расход \ перемещение) - на проверку
|
|||
|---|---|---|---|
|
#18+
RikenКот Матроскин, т.е. фактически документа Перемещения не будет вообще, но не понятно, как вывести список всех документов перемещения (список шапок доков), ведь один документ с doctype='Перемещение' я разобью на 2 с doctype='1' и '2' Приход и Расход ... Это будет список всех приходов, у которых заполнена ссылка на расход, that easy (с приджойненным расходом, чтобы было откуда взять "счет откуда"). Да, отборочный запрос будет чуть сложнее - 4 таблицы вместо 3, и условие чуть более хитрое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 17:26 |
|
||
|
Учет операций с деньгами (приход \ расход \ перемещение) - на проверку
|
|||
|---|---|---|---|
|
#18+
Кот Матроскин, большое спасибо за подсказку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 17:46 |
|
||
|
Учет операций с деньгами (приход \ расход \ перемещение) - на проверку
|
|||
|---|---|---|---|
|
#18+
Кот Матроскин, немного не понятно, что делать с Типом документа? В первоначальной структуре для документа я выбирал соответствующий элемент из справочника Типы документов, соответственно у Прихода doctype = 2, Расхода = 1, Перемещения = 3. В моем случае это помогало вывести список всех документов с названиями типов. Как теперь выводить такой список в одно время для Прихода и Расхода брать названия из справочника, а для Перемещения указывать динамически, или вообще отказаться от справочника? Операция Дата Номер ...Приход 01.08.2015 221 ...Расход 01.08.2015 931 ...Приход 02.08.2015 222 ...Перемещение 04.08.2015 148 ...Расход 05.08.2015 932 ... Вероятно, структура не правильная в корне ... Вызывает слишком много вопросов (для новичка). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 19:59 |
|
||
|
Учет операций с деньгами (приход \ расход \ перемещение) - на проверку
|
|||
|---|---|---|---|
|
#18+
RikenКот Матроскин, немного не понятно, что делать с Типом документа? В первоначальной структуре для документа я выбирал соответствующий элемент из справочника Типы документов, соответственно у Прихода doctype = 2, Расхода = 1, Перемещения = 3. В моем случае это помогало вывести список всех документов с названиями типов. Как теперь выводить такой список в одно время для Прихода и Расхода брать названия из справочника, а для Перемещения указывать динамически, или вообще отказаться от справочника? Я бы Ваш кусок Код: sql 1. заменил бы на Код: sql 1. RikenВероятно, структура не правильная в корне ... Вызывает слишком много вопросов (для новичка). Она не то чтобы неправильная - она просто очень упрощенная. Для такого уровня абстракции - нормальное решение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 21:01 |
|
||
|
Учет операций с деньгами (приход \ расход \ перемещение) - на проверку
|
|||
|---|---|---|---|
|
#18+
Кот Матроскин, все понял, спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 21:06 |
|
||
|
|

start [/forum/topic.php?fid=32&gotonew=1&tid=1540491]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
173ms |
get topic data: |
14ms |
get first new msg: |
8ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 238ms |
| total: | 526ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...