在DB中实现软件的配置功能的建议方案
来源:互联网 发布:pat端口地址转换 编辑:程序博客网 时间:2024/06/03 23:42
需求:
软件常有一些配置数据需要存储到数据库当中比如:系统使用的发件箱、软件的字体、大小、颜色等...。
数据要求存储到数据库中,便于修改。
设计:
因为配置类信息,通常是property value 形式的值对,可以设计一张表,每一个字段对应一个property存储到一个库表里。但这个表比较特殊,因为他要么为空,要么就只有一条记录。在多用户的场景下,要保证功能的正确行为要按如下方式处理:
存储配置信息的操作过程如下:
transaction begin
1.删除配置表所有数据
2.插入新的配置数据,并且指定固定主键(比如:1)
transaction commit
通过这样的代码一方面比较简单,另一方面解决了库表只存储一行记录的问题。这里隐含解决了两个问题:
1.在删记录时由于事务没有结束,而在事务结束时新的配置数据已经插入。配置数据的使用模块不会遇到配置数据不存在的情况。
2.如果同时有多个用户在同时进行配置。只有第一个提交事务的会成功,其他的由于主键冲突都会失败。
......
软件常有一些配置数据需要存储到数据库当中比如:系统使用的发件箱、软件的字体、大小、颜色等...。
数据要求存储到数据库中,便于修改。
设计:
因为配置类信息,通常是property value 形式的值对,可以设计一张表,每一个字段对应一个property存储到一个库表里。但这个表比较特殊,因为他要么为空,要么就只有一条记录。在多用户的场景下,要保证功能的正确行为要按如下方式处理:
存储配置信息的操作过程如下:
transaction begin
1.删除配置表所有数据
2.插入新的配置数据,并且指定固定主键(比如:1)
transaction commit
通过这样的代码一方面比较简单,另一方面解决了库表只存储一行记录的问题。这里隐含解决了两个问题:
1.在删记录时由于事务没有结束,而在事务结束时新的配置数据已经插入。配置数据的使用模块不会遇到配置数据不存在的情况。
2.如果同时有多个用户在同时进行配置。只有第一个提交事务的会成功,其他的由于主键冲突都会失败。
......
0 0
- 在DB中实现软件的配置功能的建议方案
- 在RCP中如何实现软件的锁屏 象Window 一样的锁屏功能
- [转]在Java中实现.net中DataTable功能以及操作双数据库的List连接问题解决方案探究
- 在Java中实现.net中DataTable功能以及操作双数据库的List连接问题解决方案探究
- 在有GI软件的环境中,对单机db进行升级时遇到的问题
- QT脚本在组态软件中实现动态功能的应用
- QT脚本在组态软件中实现动态功能的应用
- 实现从“环信”下载聊天记录,显示在本地项目页面的功能(三)—— 将解析后的数据保存到本地DB中
- 在ASP中实现视频会议的功能
- 在Qt 中实现Sleep的功能
- 在Winform中实现拖放的功能
- 关于在apache中配置error-page的问题解决方案
- 如何在你的软件中加入脚本功能
- 在Spring mvc中配置upload,实现文件上传功能的两种方式
- VISUAL C++软件开发中几个常用功能的实现
- 软件开发中几个常用功能的实现
- 软件开发中几个常用功能的实现
- 在Laravel中配置使用多个Datebase的连接,DB
- What's the difference between hashtable and maps?
- Py4j原理及简单使用
- poj2124:K-th Number
- Spark (Python版) 学习笔记(二)
- c++实验3 项目1
- 在DB中实现软件的配置功能的建议方案
- FTL常用标签及语法
- Android与JS的交互汇总
- Android设计模式(十三)-迭代器模式
- java string转utf-8
- c++实验3—项目2
- 使用CGLib代理无实现类的接口
- Android调用相机拍照并返回路径和调用系统图库选择图片
- 微信支付主要就是三步:1.组装数据生成预支付ID,2.调起微信支付接口,3.结果处理