Задать вопрос

Как лучше хранить методы выплат?

Реализую массовые выплаты клиентам. Выплаты на банковские карты и электро кошельки. Связь один к одному (пользователь может иметь один метод для выплат). Думаю над схемой бд и есть варианты:

1) Поле number в таблице payment_methods будет использоваться для хранения банковских карт и кошельков. Если нужны будут доп. поля (будет зависеть от поставщика услуг) - делать их null.
2) Создать дополнительно таблицы bank_cards и wallets и связать с payment_methods.

Или может другой способ? Подводных камней не знаю, с выплатами дело не имел.
  • Вопрос задан
  • 439 просмотров
Подписаться 6 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Открытые школы T1
    Разработчик Java
    1 месяц
    Далее
  • OTUS
    MS SQL Server Developer
    5 месяцев
    Далее
  • Нетология
    Продвинутый SQL
    5 недель
    Далее
Решения вопроса 1
Melkij
@Melkij
DBA для вашего PostgreSQL?
Тот самый случай где как раз уместнее просто jsonb.
Для каждой системы будут нужны свои данные, это всё равно у вас будет фабрика в коде для обработки и валидации требований конкретной системы. А поиск по этому json напротив является исключением, а не частой ситуацией.

То есть payment_data: id, user_id, payment_system (enum), data jsonb
В users default_payment FK на payment_data

PS: по моему опыту, лучше сразу предположите что в будущем возможно деление платежа в настраиваемых пользователем пропорциях на несколько кошельков. С задачей такой встречался несколько раз, во всех случаях через несколько лет приходили к задаче "нужно дать возможность пользователю настроить выплаты на несколько кошельков".
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
LIAN Москва
от 270 000 до 300 000 ₽
Aporia Севастополь
До 150 000 ₽
ITK academy Воронеж
от 75 000 ₽