我们单位是一个信息咨询方面的公司,现在要做一个新闻提交系统,但是我们的客户所属的行业却有不同,所以他们所关注的内容或多或少有些不同,比如A客户需要F1,f2,f3,f4字段,B客户需要f1,f2,f3,f5字段,C客户需要F1,f2,f3字段。那么我们的库结构该怎么设计才能满足以下要求:
1、易于维护和扩展
比如我们又有了新的客户,新客户需求和已有的客户又不一样。或者是我们的客户合同到期了。我们的库结构该怎么设计才能使程序尽量少的改动。
2、数据冗余尽量少,查询速度快我们想了几个方案但都觉得不太好请各位多出主意,多提意见1、所有客户的新闻文章都保存在一张表里
那么这张表的字段就得满足所有客户的需要,那么有些字段对某些客户根本就不需要,而且如果有新的需求的话,还需要添加新的字段。
2、每一个客户新闻文章都保存在各自客户的表里
那么如果一篇文章是一个行业几个客户都需要的话,就要每个客户都要保存一次新闻文章
3、每一个行业的新闻文章都保存在各自行业的表里
如果一个客户属于不同的行业时怎么办以上方案都不能满足要求,而且主要是不能很好的扩展。
请各位多提意见和方案。
1、易于维护和扩展
比如我们又有了新的客户,新客户需求和已有的客户又不一样。或者是我们的客户合同到期了。我们的库结构该怎么设计才能使程序尽量少的改动。
2、数据冗余尽量少,查询速度快我们想了几个方案但都觉得不太好请各位多出主意,多提意见1、所有客户的新闻文章都保存在一张表里
那么这张表的字段就得满足所有客户的需要,那么有些字段对某些客户根本就不需要,而且如果有新的需求的话,还需要添加新的字段。
2、每一个客户新闻文章都保存在各自客户的表里
那么如果一篇文章是一个行业几个客户都需要的话,就要每个客户都要保存一次新闻文章
3、每一个行业的新闻文章都保存在各自行业的表里
如果一个客户属于不同的行业时怎么办以上方案都不能满足要求,而且主要是不能很好的扩展。
请各位多提意见和方案。
解决方案 »
- 如何有效率的实现线程阻塞
- C#显示mysql查询结果出现System.Byte[]
- C+ 用线程刷帧,有时候很卡,会延迟.
- C#控件数组,循环关联已有控件
- c#调用以前的Dll问题,请前辈帮小弟看下代码,小弟先感谢了!
- 指针byte数组复制问题
- 请问调试类库时能用Log4net写日志么?
- 为什么treeview显示不出来?好急
- TX Text Control.NET for Windows Form控件开发问题。求各路大神速进
- 如何更改文件名?
- 来拿分吧,在线等,c#初级问题,希望各位高手教导。。。
- 如何在程序中获取一个分页网页的总页属(页面中不存在总页数),比如baidu按照一个关键子搜索后,如果搜索结果是很多页的话,怎么才能知
1 一个xml文件放表的信息
2 一个表放显示数据列的信息,可以让用户自己设置要显示的列,不同的用户对同一个表需要的显示 列不一样就可以在这里设置。
3 一个表设置功能模块,系统从这里动态的加载模块和功能
每次显示数据的时候都从显示列里取数据,
当用户增加一个表的时候必须在xml里设置上,这样进入模块的时候就可以从这里取得表的信息。
定义一个基类包括常用的增删改的功能的操作,特殊需要的时候重载这个基类。
其他为备用字段 field1 field2 field3 .......field10 (10个不够就用20个)另外建立一个表B来控制自定义字段信息
B的字段为用户名及 controlfield1 controlfield2 ......controlfield10controlfield对应新闻表 可以在controlfield里面定义字段标题 也可以根据标题是否为空判断显示新闻字段
客户 客户ID 客户名称
字段 字段ID 字段名称
客户与字段的关联 客户ID 字段ID
新闻 新闻ID 客户ID 新闻标题
新闻内容 新闻ID 字段ID 新闻字段内容这样吧,动态点的
做一个重构表的功能界面
一个原始表,里面存放哪一种类型对应的哪个表
代码做一个基类,取出数据库的所有字段生成一个comm类,然后你就可以在数据访问层,业务逻辑层直接填充comm类所对应的数据库字段映射,将其写入库。这样不会有一个多的字段,全由客户来决定
http://community.csdn.net/Expert/TopicView3.asp?id=4040085
哪位帮忙给顶一下贴子