在数据库中存储操作的优先级?模式
本文关键字:优先级 模式 操作 数据库 存储 | 更新日期: 2023-09-27 18:01:32
我需要在数据库中存储操作列表及其优先级或顺序。我不确定是否将最高优先级的操作存储为ZERO或其他。换句话说,在数据库中,操作的优先顺序是否应该存储为:
'0 1 2 3 4 5 6'
或
'6 5 4 3 2 1 0'
表结构:
[operationName, precedence]
另外,用户可以从UI(WPF应用程序)中重新排序它们,然后点击"保存",在这种情况下,我需要更新它们。他也可以创建一个新的操作,并将其插入到UI的列表中,然后点击SAVE…它还应该根据UI中的顺序将操作存储在数据库中。
编辑:
他们甚至可以从UI中删除它们这也需要更新到数据库中。围绕这一点有什么最佳实践或模式吗?
谢谢
这很简单。看来你有一张需要保存的物品清单。您还需要按照用户定义的顺序对项目进行排序。用户可以改变项目的顺序,可以删除项目等。您希望将其持久化到数据库中。
假设数据库中有一个表用于存储项目。现在没有任何东西可以存储用户定义的订单。您需要添加的是一个属性到类型(以及一个列到关系数据库的表),以反映一个顺序。
id | operation_name | user_order
--------------------------------
因此,当用户重新排序项目时,您可以将它们全部保存回数据库,或者执行UPDATE语句并更新user_order
列。
基本上,这就是你现在所拥有的。当您查询数据时,可以使用以下SQL
Select ...
From ...
Order by user_order
或相同的LINQ
这看起来像一个审计跟踪工具。如果这些序列代表一些日期,那么Martin Fowler的事件溯源可以向您展示一些模式:事件采购