你是對的,你不想在新的參數出現時改變你的數據模式!
我見過兩種做這種事的方法。其一,只需要一個「meta」文本字段,然後格式化該值以定義參數和值。的Joomla!這樣做,例如,跟蹤自定義文章屬性。它看起來像這樣:
ProductTable
id name meta
--------------------------------------------------------------------------
1 prod-a title:'a product title',desc:'a short description'
2 prod-b title:'second product',desc:'n/a'
3 prod-c title:'3rd product',desc:'please choose sm med or large'
處理這個另一種方法是使用附加表,就像這樣:
ProductTable
product_id name
-----------------------
1 prod-a
2 prod-b
3 prod-c
MetaParametersTable
meta_id name
--------------------
1 title
2 desc
ProductMetaMapping
product_id meta_id value
-------------------------------------
1 1 a product title
1 2 a short description
2 1 second product
2 2 n/a
3 1 3rd product
3 2 please choose sm med or large
在這種情況下,查詢需要加入的表,但可以優化表格更好,可以查詢獨立元而不返回所有參數等。
它們之間的選擇將取決於複雜性,數據行是否需要具有不同的元數據以及數據如何被消耗。
哦,不知道它被稱爲鍵值表。謝謝! – Henry 2010-05-14 20:37:18