дизайн базы данных: счета с мультивалютностью - PullRequest
2 голосов
/ 04 марта 2012

В вашем бухгалтерском программном обеспечении, как бы вы создали базу данных ваших счетов для COA

Дизайн 1) 1 аккаунт может содержать только 1 валюту

Дизайн 2) 1 счет может содержать мультивалютность, просто отфильтруйте транзакцию по CurrencyId (USD, GBP и т. Д.)

Дизайн 1) 1 аккаунт может содержать только 1 валюту

ACCOUNT
Id
AccountNumber
CurrencyCode
...

TRANSACTION
Id
AccountId
Amount
...

Дизайн 2) 1 счет может содержать мультивалюту

ACCOUNT
Id
AccountNumber
...

TRANSACTION
Id
AccountId
Amount
CurrencyCode
....

Ответы [ 3 ]

6 голосов
/ 04 марта 2012

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

Во-вторых, если вам необходимо принимать несколько валют, вам необходимо сохранитьтип валюты вместе со значением.В такой системе дебит в 30 не имеет смысла.Имеют значение только дебеты в 30 долларов США или 30 евро.

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

3 голосов
/ 06 марта 2012

Вы можете использовать существующие службы в качестве руководства - например, Paypal.

В Paypal для каждой учетной записи вы должны назначить базовую валюту для этой учетной записи.Затем любые транзакции конвертируются в эту валюту перед применением к учетной записи.Исходная сумма, ее валюта и применяемый в то время курс конвертации также могут храниться рядом, но для проведения расчетов вы должны использовать базовую валюту.

1 голос
/ 04 марта 2012

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...