我工作的PostgreSQL 9.1創建表,我有以下表格:與動態列
element(element_id int, name varchar, category_id int)
category(category_id int, name varchar)
characteristic(characteristic_id int, name varchar, unit varchar)
category_characteristic(characteristic_id, category_id)
element_characteristic(element_id, characteristic_id, value)
試想下表:
elements
---------------------
|id|name |category |
-----------------------
|1 |'item 1'|1 |
|2 |'item 2'|2 |
|3 |'item 3'|1 |
---------------------
category
----------------
|id|name |
|----------------|
|1 | 'category 1'|
|2 | 'category 2'|
----------------
characteristic
--------------------------------
|id|name |unit |
--------------------------------
|1 |'characteristic 1' | 'unit 1'|
|2 |'characteristic 2' | 'unit 2'|
|3 |'characteristic 3' | 'unit 3'|
|4 |'characteristic 4' | 'unit 4'|
|5 |'characteristic 5' | 'unit 5'|
|6 |'characteristic 6' | 'unit 6'|
--------------------------------
category_characteristic
------------------------------
|category_id|characteristic_id |
|------------------------------
|1 |1 |
|1 |2 |
|1 |4 |
|1 |5 |
|2 |1 |
|2 |3 |
|2 |5 |
------------------------------
element_characteristic
---------------------------------------
|id_element|id_characteristic|value |
|---------------------------------------|
|1 |1 |'value a' |
|1 |2 |'value b' |
|1 |4 |'value c' |
|1 |5 |'value d' |
|2 |1 |'value e' |
|2 |3 |'value f' |
|2 |5 |'value g' |
|3 |1 |'value h' |
|3 |2 |'value i' |
|3 |4 |'value j' |
|3 |5 |'value k' |
---------------------------------------
現在我想以下表格:
category 1
---------------------------------------------------------------------------
|name |characteristic 1|characteristic 2|characteristic 4|characteristic 5|
| --------------------------------------------------------------------------|
|item 1 |value a |value b |value c |value d |
|item 3 |value h |value i |value j |value k |
---------------------------------------------------------------------------
category 2
-----------------------------------------------------------
|name |characteristic 1|characteristic 3|characteristic 5|
| ----------------------------------------------------------
|item 2 |value e |value f |value g |
----------------------------------------------------------
我想了解什麼是b預測程序走低谷。我已經閱讀了tablefunc文檔,但我無法弄清楚如何動態創建這些過程,因爲類別表中會有N個條目。某種方向將非常感激。
+1恰好格式化完整的問題。 – 2012-07-13 20:44:02
被警告:這是一個「實體屬性值」模型。這些可能在一開始就是強大的玩具,最終會導致性能不佳。查找谷歌的「評論」。您也可以查找hstore來獲取PostgreSQL特有的更高性能的解決方案。 – 2012-07-15 09:56:10
就我而言,我認爲這是正確的路要走。我正在管理100到1000個元素,性能似乎不是這類數字的問題......除此之外,我真的需要這種類型的結構,因爲我稍後需要它來執行計算。感謝您的建議! – NewK 2012-07-15 21:27:25