你基本上試圖在關係數據庫中表示繼承。
你有兩個「類」在某些方面是相似的,而在其他方面是不同的。我的建議是創建一個表,充當tbl_expanditures
和tbl_fixed_expanditures
的父級。
這裏是我會做:
+------------------+
| tbl_expenditures |
+------------------+
| id |
+------------------+
+------------------------+
| tbl_fixed_expenditures |
+------------------------+
| id |
| expenditureId |
| ... |
+------------------------+
+---------------------------+
| tbl_variable_expenditures |
+---------------------------+
| id |
| expenditureId |
| ... |
+---------------------------+
...其中tbl_fixed_expenditures.expenditureId
和tbl_variable_expenditures.expenditureId
都必須tbl_expenditures.id
參考。
這樣,當您需要將它們簡稱爲「支出」(例如,在您的交易表中)時,您可以參考tbl_expenditures
,並且當您需要固定或可變支出獨有的信息時,您可以參考「孩子」表。
這是關係數據庫的一個非常普遍的問題,並且有幾種處理方法,每種方法都有其優點和缺點。IBM有一個非常好的文章,概述這些選項,我強烈建議進一步閱讀:
http://www.ibm.com/developerworks/library/ws-mapping-to-rdb/
有什麼實際問題?您是否擔心規範化,因爲這兩類項目(固定資產和可變資產)具有不同的屬性/列? – theMarceloR
是的,這是關於正常化(不要問我哪一個:P),但我不知道如何去做。我有這張表需要節省這兩種支出的表expenditures_tranx。 –
我不確定我是否理解這個問題。如果你想把所有的支出都放在一張桌子上,但需要區分它們,那麼標誌(內容= y或n)就是要走的路。 – mikeY