存储数据库中的操作优先级?模式?

时间:2014-05-02 10:31:01

标签: c# sql wpf

我需要在数据库中存储操作列表及其优先级或顺序。 我不确定是否将具有最高优先级的操作存储为ZERO或其他。 换一种说法, 如果优先操作的顺序应该存储在数据库中:

'0 1 2 3 4 5 6'  

OR

'6 5 4 3 2 1 0'

表数据结构:

[operationName, precedence]

此外,用户可以从列表中的UI(WPF应用程序)重新排序等等,然后点击“保存”#34;在这种情况下,我需要更新它们。他还可以创建一个新操作并将其插入UI的列表中并点击SAVE ...这也应该根据UI中的顺序将操作存储在数据库中。

修改
其他的事情是他们甚至可以从UI中删除或删除它们,这也需要更新到数据库。 是否有围绕此的最佳实践或模式?

由于

2 个答案:

答案 0 :(得分:1)

这很简单。看起来您有一个需要保存的项目列表。您还需要按用户定义的顺序对项目进行排序。用户可以更改项目的顺序,可以删除项目等。您希望将其保留到数据库中。

假设您在数据库中有一个存储项目的表。刚才没有什么可以存储用户定义的订单。您需要添加的是类型的单个属性(以及关系数据库表的单个列)以反映订单。

id | operation_name | user_order
--------------------------------

因此,当用户重新排序项目时,将所有项目保存回数据库,或者执行UPDATE语句并更新user_order列。

基本上,这就是你刚才所拥有的。查询数据时,可以使用此SQL

Select ...
From ...
Order by user_order

或LINQ中的相同

答案 1 :(得分:0)

这看起来像审计跟踪工具。如果这些序列代表某些日期,那么Martin Fowler的事件采购可以向您展示一些模式: Event Sourcing