|
Покажите пожалста пример таблиц для движения денег
|
|||
---|---|---|---|
#18+
Товарищи, помогите пожалуйста в голове всё привести в порядок. Чё-то горожу горожу и всё чувствую что, что-то не то. Помогите мне примером организации хранения в БД движений денег от пользователей и внутри самого приложения. 1. Пользователи могут вносить свои реальные средства с карточек в "систему". По типу платежей ВК и т.п. 2. Пользователи внутри системы могут пользовать внесённые средства. 3. Пользователи могут выводить средства из системы на свои счета (карточки, банковский счёт и т.п.) Не могу никак соорудить схему этого всего стройную. Как я это вижу для себя: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49.
И вот у меня серьёзные сомнения в адекватности такой схемы. Просто всё выглядит как колосс на глиняных ногах. Покажите пожалуйста примеры организации схемы "Внесение-вывод реальных денег, и их использование как внутриигровой валюты" ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2018, 12:41 |
|
Покажите пожалста пример таблиц для движения денег
|
|||
---|---|---|---|
#18+
kormot, можно ли все расчеты вести в одной валюте(внутрисистемной), чтобы при операциях избегать всяких конвертаций, а входящие и исходящие операции(по вводу и выводу денег) уже конвертировать в нужные валюты? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2018, 12:59 |
|
Покажите пожалста пример таблиц для движения денег
|
|||
---|---|---|---|
#18+
Озверин , делаю всё я и как будет лучше и правильней так и сделаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2018, 13:09 |
|
Покажите пожалста пример таблиц для движения денег
|
|||
---|---|---|---|
#18+
kormot Озверин , делаю всё я и как будет лучше и правильней так и сделаю. Это зависит от законодательства, принципов учета конкретной организации и т.п. Если у Вас система совсем-совсем черная и никаких данных оттуда Вы никаким госорганам показывать не планируете - тогда да, можно решать чисто с технической точки зрения. Теперь ближе к теме 1. непонятно назначение таблицы transaction_user - это развязка многие-ко-многим между пользователями и транзакциями? Транзакция может относиться к нескольким пользователям сразу? Как-то это странно. 2. User_money - неудачная таблица. Если хотите хранить в системе текущий баланс денег (это неоднозначное решение) - его надо хранить по счетам, а не по пользователям, иначе для пользователя, имеющего несколько счетов, будет полный бардак. 3. Что до собственно таблицы движения средств - я бы разбивал ее на 2 таблицы, master "высокоуровневая пользовательская операция" (покупка чего-то, продажа чего-то, перевод чего-то, оплата чего-то, etc.) и detail "движение денег по счетам" (то, что обычно называют проводками ). Скажем, пользовательская операция "конвертация валюты" будет порождать несколько проводок - зачисление одной валюты, списание другой валюты, комиссия, .... поле tData, в котором Вы, похоже, хотите хранить все детали операции - тоже не лучшее решение, правильнее потратить время, продумать все детали, которые могут быть у операции, и расписать их в виде отдельных полей в master-таблице движения. Выйдет 20 полей - значит 20, выйдет 40 - значит 40. В крайнем случае это можно оставить на второй этап и в бета-версии пожить с полем-"свалкой" - но как временным решением. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2018, 17:46 |
|
Покажите пожалста пример таблиц для движения денег
|
|||
---|---|---|---|
#18+
Кот МатроскинЕсли у Вас система совсем-совсем черная и никаких данных оттуда Вы никаким госорганам показывать не планируете - тогда да, можно решать чисто с технической точки зрения. Ну вообще конечно надо с прицелом на легальное использование делать. Но ведь если с технической стороны учёт поступлений и выплат изначально корректным, то уже в процессе появления необходимости предоставлять какую-то определённую отчётность это можно будет сделать. Кот Матроскин1. непонятно назначение таблицы transaction_user - это развязка многие-ко-многим между пользователями и транзакциями? Транзакция может относиться к нескольким пользователям сразу? Как-то это странно. Нет, это значит что не за каждой транзакцией входящих средств есть зарегистрированный в системе пользователь. Может быть типа "благотворительного взноса". Когда человек не регистрируясь нажимает на кнопку пайпал к примеру и вносит определённую сумму, не регистрируясь при этом в системе. А если в этой таблице для транзакции запись есть, то значит за ней стоит пользователь (один). Для tID можно UNIQUE указать. Я думал поле userID сделать в таблице transaction, но тогда там будет допустимо 0 в этом поле, вроде нехорошо. Кот Матроскин2. User_money - неудачная таблица. Если хотите хранить в системе текущий баланс денег (это неоднозначное решение) - его надо хранить по счетам, а не по пользователям, иначе для пользователя, имеющего несколько счетов, будет полный бардак. Ну вот да... Но тут вопрос в том, пользователи могут вносить ведь в разных валютах средства, и более того, даже один и тот же пользователь может внести один раз средства в рублях, второй раз в долларах. В этой таблице подразумевается хранится агрегатная информация по его приходам/выводам чтобы их не дёргать подсчётом из общей таблицы транзакций. Я тоже вроде чувствую что какая-то неразбериха грозит в случае если у каждого пользователя баланс это ещё и набор его разновалютных "счетов", но тут или вводить какие-то универсальные для всех "тугрики" в которые всё переводить, но опять же встанет вопрос с конвертацией этих "тугриков" при выводе когда курс будет другой и может случиться так, что итог конвертации для реальных счетов на которых деньги лежат будет неподходящим для системы. Вот и не знаю как это всё формализовать. Кот Матроскин3. Что до собственно таблицы движения средств - я бы разбивал ее на 2 таблицы, master "высокоуровневая пользовательская операция" (покупка чего-то, продажа чего-то, перевод чего-то, оплата чего-то, etc.) и detail "движение денег по счетам" (то, что обычно называют проводками ). Скажем, пользовательская операция "конвертация валюты" будет порождать несколько проводок - зачисление одной валюты, списание другой валюты, комиссия, .... поле tData, в котором Вы, похоже, хотите хранить все детали операции - тоже не лучшее решение, правильнее потратить время, продумать все детали, которые могут быть у операции, и расписать их в виде отдельных полей в master-таблице движения. Выйдет 20 полей - значит 20, выйдет 40 - значит 40. В крайнем случае это можно оставить на второй этап и в бета-версии пожить с полем-"свалкой" - но как временным решением.Спасибо за совет. Ещё несколько раз внимательно прочитаю, осмыслю и примерю к своим идеям. А tData - да, это типа json объект туда скидывать. Ну поля добавить и из свалки сформировать, будет небольшим вопросом. Ещё раз спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2018, 19:57 |
|
|
start [/forum/topic.php?fid=32&msg=39727346&tid=1539988]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
29ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
others: | 15ms |
total: | 143ms |
0 / 0 |