Подтвердить что ты не робот

Принципы проектирования для проектирования архитектуры базы данных системы финансовых транзакций?

Я хочу создать базу данных, которая будет вести запись для финансовых транзакций. Я хочу создать ее как продукт, чтобы он мог использоваться для любых финансовых транзакций. Существуют ли какие-то принципы проектирования, специфичные для проектирования баз данных финансовых транзакций, которые может помочь мне сделать базу данных более долговечной в течение длительного времени с минимальными изменениями архитектурного уровня. Некоторые хорошие примеры также помогут.

Спасибо

4b9b3361

Ответ 1

Некоторые особенности, относящиеся к финансовым системам, включают в себя внутренний контроль (это критический учетный термин, сделайте некоторые исследования, чтобы действительно подумать об этом). Такие вещи, как человек, вводящий значение чека, также не могут его одобрить. Такие вещи, как использование хранимых procs, а не SQL, созданных из приложения, так что вы можете ограничить права только обработкой (вообще никакой динамический SQL вообще - в финансовой системе), и поэтому пользователи могут делать только то, что им разрешено делать. Никаких прав для кого-либо, кроме производства dba и альтернативы таблицам. Мошенничество - это то, что вы пытаетесь защитить систему от не только внешних атак. Безопасность важна для финансовых систем.

Вам также нужны таблицы аудита, чтобы узнать, кто изменил какие данные и когда и что такое старое значение. Это не только дополнительный способ помочь найти проблемы, если кто-то обошел внутренний контроль (или система забыла реализовать некоторые критические), украл деньги, но часто бывает важно, чтобы можно было отменить ошибку, не восстанавливая ее. В общем случае системы учета часто имеют поля данных, которые не могут быть просмотрены пользователем и генерируются с использованием значений по умолчанию или способом, который пользователь не видит в них.

Другое дело, что вам нужно своевременно просматривать действия, чтобы вещи, которые могли бы выглядеть как естественные отношения, могли нуждаться в денормализации, чтобы сохранить то, что стоило в момент совершения действия. Поэтому, если у вас есть почасовая таблица тарифов, вы должны использовать это как поиск, чтобы получить скорость во время действия, а не присоединиться к ней, чтобы получить скорость при запросе.

Финансовые системы имеют в них личные данные, почти всегда, думают, как вы собираетесь защищать эти данные. Вам нужно будет шифровать и дешифровать данные. Вероятно, вам также нужна зашифрованная резервная копия.

Эти данные являются жизненной основой компании, важно, чтобы у вас был хороший план резервного копирования и много практики восстановления. Резервные копии вне сайта имеют решающее значение.

Целостность данных имеет решающее значение. Вам нужны правильные типы данных, и вам нужны отношения pk/fk, ограничения и триггеры для обеспечения соблюдения правил. Финансовая система не может позволить себе иметь осиротевшие записи.

Вы должны тщательно рассмотреть удаление. Финансовые системы часто делают мягкие удаления (отметьте записи как удаленные, чтобы избежать потери исторических данных. Да, компания XYZ больше не является клиентом, но вы не хотите потерять финансовую историю заказов, которые у них были в прошлом. рассмотрите возможность использования каскадного удаления в финансовой системе.

Не просто разговаривать с бухгалтерами при проектировании системы, разговаривать с финансовыми людьми, которые будут управлять системой и аудиторами, которые будут проверять результаты. Прочитайте и хорошо ознакомьтесь с опубликованным стандартом бухгалтерского учета для страны, для которой вы проектируете. Посмотрите на налоговые последствия. Это сложный материал.

Подумайте о хранении данных и архивировании данных. Финансовые системы часто запрашивают старые данные для отчетов, отчетность большая, большая, большая для финансовых систем. Подумайте, как сделать это эффективно, не затрагивая ежедневный ввод данных.

Ответ 2

В зависимости от того, чего вы на самом деле пытаетесь достичь, для создания "финансовой транзакции", которая вам полезна, вам нужно научить себя журналам, бухгалтерским книгам и другим деталям бухгалтерского учета. Это не так просто, как протоколирование фактических транзакций в таблице...

Действительно, я не думаю, что вы найдете принципы проектирования баз данных для финансовых систем, которые отличаются от любой системы баз данных, которая нуждается в ее информации, на 100% правильной.

Следовательно, чтение следующего при работе с базами данных никому не повредит:

Лучшие рекомендации по дизайну баз данных

Контролируете ли вы свои базы данных?

Ошибки в разработке баз данных, сделанные разработчиками приложений

Каковы некоторые из наиболее полезных стандартов базы данных?