我有用於存儲公司資產多個表,這些表包括: -創建多個鎖定表比。創建一個查找表
•汽車
•服務器
•電腦
•傢俱
現在對於每個資產,我想創建一個商店資產模型查找表,例如在創建新PC時,用戶將選擇型號「Dell vostro 350」等。 但是有什麼更好的;要定義四個查找表(如vechicle_model,Server_models,Pc_models,furniture_model),或定義一個查找表,並有一列描述它的類型(Type = PC)
問候
我有用於存儲公司資產多個表,這些表包括: -創建多個鎖定表比。創建一個查找表
•汽車
•服務器
•電腦
•傢俱
現在對於每個資產,我想創建一個商店資產模型查找表,例如在創建新PC時,用戶將選擇型號「Dell vostro 350」等。 但是有什麼更好的;要定義四個查找表(如vechicle_model,Server_models,Pc_models,furniture_model),或定義一個查找表,並有一列描述它的類型(Type = PC)
問候
如果你只是打算用於查找,我會選擇一個表格解決方案。
如果您打算根據其型號存儲有關資產的其他信息,例如車輛是汽油/柴油車,還是PC機是臺式機或筆記本電腦,那麼多表解決方案可能會更好。
但是一張表會影響性能,因爲我必須過濾只有特定類型的資產。例如,當我在新車上做廣告時,我不得不搜索那些型號爲Vechicle的車型。你覺得怎麼樣? –
它可能會產生影響,但是,我猜這個表格不會是數千行而不是數百萬行,並且asset_type或assert_type,model_name上的索引會有所幫助 –
使用單獨的查找表,儘管它們可能具有相似性 - 除非您a)想要允許某人存儲Dell vostro 350
作爲傢俱類型,或者b)想要在數據庫中具有顯着更復雜的約束條件防止這種交叉選擇被記錄。實際上,您對單個查詢表的建議是衆所周知的,它甚至獲得了它自己的縮寫--OTLT,一個真正的查找表的縮寫。如果你關心搜索它,它幾乎總是被稱爲「反模式」或「初學者錯誤」。
這些表是否共享相同的列,約束和物理存儲?
請注意,上述條件實際上比第一眼看起來更難實現。例如,如果出現以下情況,應將表格分開保存:
所以,很可能你會需要繼續保持的表分開。
http://martinfowler.com/eaaCatalog/classTableInheritance.html –