我有關於非規範化或表層次關係的最佳實踐的問題。SQL/MySQL結構(非規範化或保持關係)
舉一個簡單的例子,假設我有一個應用程序允許用戶爲訂單付款。我將訂單信息保存在訂單表中,並且還有另一張名爲付款的付款表。付款具有訂單表的外鍵。
讓我們假設我可以用信用卡,支票或PayPal支付,並且我想保存關於付款的信息。
我的問題是處理不同付款數據和付款表之間這種關係的最佳方式是什麼。支付類型都有不同的數據與他們相關聯。因此,我要使支付表非常規化,將信用卡,支票和PayPal信息字段放在那裏,然後根據需要使用這些字段。或者我可以指定一種支付類型,並將信息存儲在他們自己的表中,但是接下來我將不得不在應用程序級別使用邏輯從正確的信用卡,支票或PayPal信息表中獲取數據...
您需要爲每種付款類型存儲的信息有何不同?對於付款,我通常會存儲付款類型(支票,抄送,支付寶等)以及支票號碼,信用卡授權號碼,貝寶交易號碼等單一的DocumentID列。 – 2009-10-21 14:21:57
付款只是一個簡單的例子。這種情況的實際使用情況要複雜得多,每種類型大約有20個獨特的列。 – Jestep 2009-10-21 14:23:53