[英]NoSQL (DynamoDB) database design
我正在開發一個允許跟蹤股票投資組合的小項目。 用戶可以擁有無限數量的投資組合,其中包含無限數量的股票,包括有關股票單位數量和購買價格的信息。
我的想法如下,但我很想聽聽您的想法:
投資組合表
{
userid, (primary partition key, Cognito)
portfolioid, (primary sort key, String)
name, (String)
stocks[] {
stockid, (String)
units, (Number)
purchase_price, (Number)
purchase_cost, (Number)
}
}
股票表
{
stockid, (primary partition key, String),
name, (String)
exchange, (String)
last_updated, (Date)
prices[] {
date, (Date)
price, (Number)
}
}
這有意義嗎?
我將在投資組合上運行的 2 個關鍵查詢:
因此,理想情況下,對於那些查詢,我將直接在投資組合表中獲得股票價格信息,但隨后我需要每天更新(或者想象我更改為實時數據)每個投資組合,而對於上述表格,我只會更新股票表. 如何最有效地獲取這些數據?
期待您的反饋意見。 提前致謝!
上面的表結構看起來不錯,除了stocks
表中的以下變化:
exchange
作為partition-key
,因為大多數股票都是按交易所分類的,不同交易所的價格可能不同。stocks_archive
)中包含股票的歷史價格數據,這將使對stocks
表的查詢在任何給定情況下更有效地計算盈虧,因此您的stocks
表應如下所示: {
stockid, (primary partition key, String), // consider renaming it to 'scrip_code', ref: https://www.investopedia.com/terms/s/scrip.asp
name, (String)
exchange, (String)
last_updated, (Date)
price (Number)
}
祝一切順利!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.