數據庫有兩個表格:一個用於股票(股票),另一個用於期權。這些是單獨的表格,因爲它們有不同的信息。例如,股票表具有股票代碼欄和(主)交易欄;期權表中有一個股票代碼欄,一個指向股票表的FK欄,一個執行價格欄,一個到期日期欄和一個右側(投入/看漲)欄。我認爲把它們分成兩張表是一個好主意,儘管這是開放的討論。數據庫設計:股票和期權交易
我需要在數據庫中存儲交易(或訂單或交易)。一筆交易就像「在2012年4月14日以200美元買入100股IBM」,一筆交易可以涉及股權或期權,交易應該存儲爲一張表格,其中一列指明交易是否涉及股票或一個選項,另一列是指向股票表或期權表的FK?或者應該有兩個交易表,一個涉及股票交易,一個涉及期權交易?
稍後,我還需要添加頭寸表,一個簡單的頭寸將由兩筆交易組成,比如今天買入100股IBM,明天賣出100股IBM,但也可能更復雜,涉及期權和股票(例如,被保險的看漲期權),似乎如果我爲兩筆交易做交易,那麼在設計頭寸表時我會面臨同樣的困難,如果我實施了單一交易表e:我需要一個指向股票交易表或期權交易表的外鍵。
這讓我覺得應該有一個單一的工具表,其中包含股票和期權。但是,股票所需的信息與期權差異很大(見第一段),這也是錯誤的。包含庫存的行將使所有特定於選項的列爲空。
我應該如何設計這個數據庫?
你介意發佈SQL DDL和一些示例數據作爲INSERT語句嗎? – 2012-04-25 03:07:38