Exchange事务架构-数据库设计

时间:2018-08-01 07:35:36

标签: sql-server database database-design nosql relational-database

我正在尝试开发一种实现所有类型交易的基于商品的交易平台

场景

1。我们有一种商品,例如说黄金,其价格采用不同的货币

2。每个用户可以有多个用于存储其商品的钱包

{
"userId":"1",
"wallets":
          [
           {"walletName":"goldwallet1", "commodityId":"1", "walletAddress":"7x000abcd"},
           {"walletName":"goldwallet2", "commodityId":"1", "walletAddress":"7x111efgh"},
           {"walletName":"coinwallet3", "commodityId":"2", "walletAddress":"7x222efgh"},
          ]
}

2。此商品(黄金)可以使用不同的货币(例如欧元,美元)在我们的平台上买卖/出售,并存储在用户钱包中

3。除了买卖交易外,还必须执行4种交易类型。

一个)提现:用户此时可以提现其商品或同等价格的商品,并通过跟踪号从我们的商店接收

两个)转移:用户可以向/从其钱包地址发送/接收商品

三种)交换:用户可以将一种商品交换为其他类型

四)支付(支出):用户可以花费其商品来购买服务或产品...


对于这个问题,我想出了这种方法:

1。一个具有5个继承表的大交易表

Transaction
  Id
  WalletId
  Amount(Sign)
  Type(Buy/Sell/Withdraw/Exchange/Pay)
  CreatedAt


Pay
  TransactionId
  For(ProductId)

Transfer
  TransactionId
  To/FromWalletId:
  Type:(Send/Receive)

Exchange
  TransactionId
  DestinationWalletId
  CommodityId
  ExchangeRate

Withdraw
  TransactionId
  Traking-Number

我将首先使用SQL Server Express,但我甚至怀疑RDBMS是否适合这种情况,还是应该考虑使用No-SQL ...

0 个答案:

没有答案