在DB中实现软件的配置功能的建议方案
2017-04-05 14:33
281 查看
需求:
软件常有一些配置数据需要存储到数据库当中比如:系统使用的发件箱、软件的字体、大小、颜色等...。
数据要求存储到数据库中,便于修改。
设计:
因为配置类信息,通常是property value 形式的值对,可以设计一张表,每一个字段对应一个property存储到一个库表里。但这个表比较特殊,因为他要么为空,要么就只有一条记录。在多用户的场景下,要保证功能的正确行为要按如下方式处理:
存储配置信息的操作过程如下:
transaction begin
1.删除配置表所有数据
2.插入新的配置数据,并且指定固定主键(比如:1)
transaction commit
通过这样的代码一方面比较简单,另一方面解决了库表只存储一行记录的问题。这里隐含解决了两个问题:
1.在删记录时由于事务没有结束,而在事务结束时新的配置数据已经插入。配置数据的使用模块不会遇到配置数据不存在的情况。
2.如果同时有多个用户在同时进行配置。只有第一个提交事务的会成功,其他的由于主键冲突都会失败。
......
软件常有一些配置数据需要存储到数据库当中比如:系统使用的发件箱、软件的字体、大小、颜色等...。
数据要求存储到数据库中,便于修改。
设计:
因为配置类信息,通常是property value 形式的值对,可以设计一张表,每一个字段对应一个property存储到一个库表里。但这个表比较特殊,因为他要么为空,要么就只有一条记录。在多用户的场景下,要保证功能的正确行为要按如下方式处理:
存储配置信息的操作过程如下:
transaction begin
1.删除配置表所有数据
2.插入新的配置数据,并且指定固定主键(比如:1)
transaction commit
通过这样的代码一方面比较简单,另一方面解决了库表只存储一行记录的问题。这里隐含解决了两个问题:
1.在删记录时由于事务没有结束,而在事务结束时新的配置数据已经插入。配置数据的使用模块不会遇到配置数据不存在的情况。
2.如果同时有多个用户在同时进行配置。只有第一个提交事务的会成功,其他的由于主键冲突都会失败。
......
相关文章推荐
- 方案集成-采用配置文件实现多个软件对多个硬件的加密
- ,有一款RESTFUL接口的文档在线自动生成+功能测试功能软件——Swagger UI,具体配置过程可移步《Spring Boot 利用 Swagger 实现restful测试》
- 软件开发中几个常用功能的实现
- 快速实现简单高效并可以灵活配置的URL重写方案(附源代码)
- 求助:C#做的聊天软件,字体和截图功能实现了,可是传不过去
- java根据properties配置文件来实现功能模块的动态切换
- 企业内部实现软件测试自动化的方案探讨
- 项目配置管理方案--确定软件开发过程
- VISUAL C++软件开发中几个常用功能的实现
- tomcat实现SSL配置方案
- .net 软件注册功能的简单实现
- MOSS字段编辑权限控制方案的实现(1)-管理页面的开发和配置信息的持久化
- 快速实现简单高效并可以灵活配置的URL重写方案(附源代码)
- 快速实现简单高效并可以灵活配置的URL重写方案(附源代码)
- 2005年度软件配置管理和网站测试方案
- 软件开发中几个常用功能的实现
- 在Linux下用软件实现RAID功能
- 实现jsp页面得分页显示功能方案
- 实现jsp页面得分页显示功能方案