您的位置:首页 > 其它

在DB中实现软件的配置功能的建议方案

2017-04-05 14:33 281 查看
需求:

软件常有一些配置数据需要存储到数据库当中比如:系统使用的发件箱、软件的字体、大小、颜色等...。

数据要求存储到数据库中,便于修改。

设计:

因为配置类信息,通常是property value 形式的值对,可以设计一张表,每一个字段对应一个property存储到一个库表里。但这个表比较特殊,因为他要么为空,要么就只有一条记录。在多用户的场景下,要保证功能的正确行为要按如下方式处理:

存储配置信息的操作过程如下:

transaction begin

1.删除配置表所有数据

2.插入新的配置数据,并且指定固定主键(比如:1)

transaction commit

通过这样的代码一方面比较简单,另一方面解决了库表只存储一行记录的问题。这里隐含解决了两个问题:

1.在删记录时由于事务没有结束,而在事务结束时新的配置数据已经插入。配置数据的使用模块不会遇到配置数据不存在的情况。

2.如果同时有多个用户在同时进行配置。只有第一个提交事务的会成功,其他的由于主键冲突都会失败。

......
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  设计