2016-01-19 149 views
1

task_set是有兩個colums(ID,任務)的數據庫:數據庫設計:序集

id task 
    1  shout 
    2  bark 
    3  walk 
    4  run 

假設有另一個表有兩個colums(員工,task_order)

task_order是一個有序集合例如(2,4,3,1)

通常,task_order不變,但有時可能會插入或刪除,例如(2,4,9,3,1),(2 ,4,1)

如何設計s這是一個數據庫?我的意思是如何實現有序集?

回答

1

如果和只有如果您不需要在task_set列內進行搜索或更新其值之一(即將4,2,3更改爲4,2,1),則將該列保留爲分隔字符串可能是一個簡單的解決方案。但是,如果您計劃在task_set內搜索或更新特定值,那麼您最好將該結構標準化爲一個將保存員工ID,任務ID和任務順序的表。

+0

「規範化該結構到一個表,將持有員工id,任務id和任務順序」,然後如何命令他們? –

+0

按任務順序欄排序。表格本質上是未排序的,如果您想要在數據庫中保留訂單,您必須在select語句order by clause中使用一列。 –

+0

問題是如何在任務順序列中排列它們?給他們分配號碼?比方說1,2,3,4。但是現在我想在1和2之間插入一個項目,所以我必須使2爲3,3爲4和4爲5? –