2010-02-18 79 views
0

我有一個表訂閱源,其中包含代碼描述行的集合。 例如訂購數據庫表的行

Key | Value  | Url      
fb | facebook | http://www.facebook.com 
tw | twitter | http://twitter.com  
ff | friendfeed | http://friendfeed.com 

休息終點返回此表的內容作爲一個JSON陣列&它顯示在下拉網頁的對話框。

今天老闆想要以特定的方式對內容進行排序。 我希望你對我的設計發表評論。

設計1

我添加了一個單獨的列到飼料稱爲等級來表示該項目的順序。

Key | Value  | Url      | Rank 
fb | facebook | http://www.facebook.com | 3 
tw | twitter | http://twitter.com  | 1 
ff | friendfeed | http://friendfeed.com | 2 

設計2

我創建一個單獨的表FeedRank存儲等級。

Key | Rank 
fb | 3 
tw | 1 
ff | 2 

分析

我傾向於設計#1,因爲我可以用JOIN免除。每個設計&有哪些優點和缺點?

回答

1

如果這是一對一的關係,那麼沒有真正的理由將它放在單獨的表格中。去#1,imo。

0

設計1就好了。設計2基本上與設計1相同,但具有不必要的複雜性。

3

把排名放在一個單獨的表中的唯一原因是,如果a)代碼描述和排名之間的關係不是1:1,或者b)該列是稀疏填充的(大多數行有一個NULL值)

即使在後一種情況下,大多數人都會去規範化並將排列列放在代碼描述表中。