2013-01-23 17 views
0

我想存儲mysql表中的項目之間的比較。例如,我有以下三個項目:在MySQL中存儲/更新基於比較的數據

  • ID:1,名稱:項目A,comparisionScore:1
  • ID:2,名稱:項目B,comparisionScore:2
  • ID:3,名稱:項目C,比較評分:3

這意味着,比較時,比較評分越大的項目越好。但是,當我想插入一個新的項目到表中時,這個方法失敗了,這比項目A好,而且比項目B差,我們說項目D.所以我可以做以下事情,因爲我不必存儲整數:

  • ID:1,名稱:項目A,comparisionScore:1
  • ID:2,名稱:項目B,comparisionScore:2
  • ID:3,名稱:項目C,comparisionScore:3
  • id:4,Name:Item D,comparisionScore:1.5

The wors因爲我們無法知道要添加的新項目的數量,所以沒有足夠的數量用於此目的。例如,通過將範圍由2,則結果可以是以下:

  • ID:1,名稱:項目A,comparisionScore:1
  • ID:2,名稱:項目B,comparisionScore:2
  • ID:3,名稱:項目C,comparisionScore:3
  • ID:4,名稱:項目d,comparisionScore:1.5
  • ID:5,名稱:項目E,comparisionScore:1.75
  • ID: 6,名稱:項目F,比較分數:1.875
  • ID:7,名稱:項目G,comparisionScore:1.9375
  • ID:8,名稱:項目H,comparisionScore:1.96875 ...

如果該項目Z小於項目比更好和更壞項目H,沒有Z值可能在1.9999 ...和2之間的兩倍值。

所以問題是我可以使用什麼方法來存儲MySQL數據中項目之間的比較數據?

我應該能夠回答,當用戶通過查看該表詢問哪一個更好的項目A或項目D.

+0

如果您存儲排名而不是分數?比如「b + h-」表明它比b好,比h差?然後在進行查詢時建立分數? – ethrbunny

+0

我想要做的事情如下: 用戶來問,哪一個更好?項目A或項目G? 我可以爲此做點什麼嗎? – sedran

+0

_「如果項目Z比項目A更好,而且比項目H更差,則Z值不會超過1.9999 ...和2之間的兩倍。」 - 我不明白,不應該Z介於1和1.96875之間? –

回答

1

而不是開始比較分數爲1,2,3。給出更大的整數值,如10,000,20,000,30,000。那麼你有一些空間可以在中間插入值。

要回答最後一個問題,當您嘗試插入12,384和12,385之間的比較分數時,必須先將所有比較分數重新編號,以便您可以放置​​最新的比較分數。

這些數字只對排序有意義,所以您可以隨時更改它們。

+0

謝謝,這是我將實施的方式。 – sedran