powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Правильная организация таблиц для движений денег.
2 сообщений из 2, страница 1 из 1
Правильная организация таблиц для движений денег.
    #39699575
kormot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!

Прошу совета маститых проектировщиков БД со своим вопросом.
Задача значит такая:
1. Есть организация со множеством различных счетов (на которых хранятся средства в разных валютах)
2. Есть клиенты. Это условно только физ.лица
3. Между организацией и клиентами происходят "беспорядочные" денежные транзакции. (т.е. от клиента на какой-либо счёт и с какого-либо счёта к какому-либо клиенту). При этом у клиентов меняется их "баланс" в валюте совершённой транзакции.
4. Также может быть ввод/вывод денег на/со счетов организации в различных валютах не клиентами.

Прочитал что движения денег двухтабличным способом хорошо описываются издавна (в 1С в частности), я этот способ понял, принял к сведению. Но в моём случае вроде таблиц должно быть больше и я поэтому хочу с людьми не одну собаку съевшими на этих задачах проконсультироваться.

Значит я вижу это так:
Код: 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.
TABLE org_account ( /* Счета организации */
    id         SERIAL PRIMARY KEY,
    currencyID INT UNSIGNED NOT NULL   /*Указатель на валюту счёта */,
    sum        DECIMAL(25,12) NOT NULL /* Текущее состояние счёта */
)

TABLE acc_transactions ( /* Приход расход средств на счета организации */
    id      SERIAL PRIMARY KEY,
    cDate   DATE NOT NULL,            /* Метка времени транзакции */
    accID   BIGINT UNSIGNED NOT NULL, /* Указатель на счёт с которым связана транзакция */
    value   DECIMAL(25,12) NOT NULL,  /* Величина транзакции */
    jData   CHAR(255) NOT NULL        /* Доп. информация о информации в json виде. Типа источник или адресат и др. */
)

TABLE client_state ( /* Состояние баланса клиента */
    clientID BIGINT UNSIGNED NOT NULL UNIQUE, /* Указатель на клиента */
    jData    CHAR(255) NOT NULL               /* Массив баланса клиента по валютам в json виде */
)

TABLE client_transactions ( /* Список транзакций которые связаны с клиентами */
    id        SERIAL PRIMARY KEY,
    clientID  BIGINT UNSIGNED NOT NULL,
    tID       BIGINT UNSIGNED NOT NULL UNIQUE
)

TABLE other_transactions ( /* Другие транзакции. Не связанные с клиентами */
    id      SERIAL PRIMARY KEY,
    tID     BIGINT UNSIGNED NOT NULL UNIQUE,
    jData   CHAR(255) NOT NULL
)



Вопросы такие:
1. Достаточна ли такая схема и надёжна ли для описания движений средств?
2. Предполагается что могут быть и криптовалюты всякие, стоит ли раздельно оформлять таблицы для криптосчетов и обычных валют? И также таблицу движений и остатков или принцип один? Я именно поэтому указал тип DECIMAL(25,12) т.к. у криптовалют точность большая сумм
3. Как лучше реализовать учёт остатков на счетах и балансов клиентов:
а) триггером при внесении записи в таблицы движений или транзакций клиентов
б) фоновым процессом который будет обрабатывать все записи в таблице движений за последний отрезок времени?

Пока писал, вроде сам многое понял, но один фиг прокомментируйте Уважаемые!
...
Рейтинг: 0 / 0
Правильная организация таблиц для движений денег.
    #39716963
kormot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Товарищи, дайте хотя бы совет по поводу формата для хранения курсов.
1. Стоит ли все курсы держать в одной таблице? Типа и курс руб./$ и курс руб./1гр.золота и курс руб./всякие койны?
2. Какой стоит взять формат хранения курса в таблице?
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Правильная организация таблиц для движений денег.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]