这是一个关于,动态添加录入项的功能 例如,我要实现的对人员进行 基本信息,工作情况,管理 通常,设计库时要有两个表, table1 存基本信息 table2 存 工作情况
对于table1通常是定义 姓名,年龄,等字段 ,
对于table2通常是定义 工作日期, 单位名 等字段,
问题数据库一旦设计好,所要统计的信息也就是 姓名,年龄 这些字段了, 一但有一天客户说,我还要统计 身高,这个字段 ,由于数据库没设计这个字段,所以还要添加这个字段,修改代码
来完成, 我现在想要做的是 做一个表,存储用户要统计的字段,,用户可以随时添加,
但是用户基本信息这个表又如何设计呢, 理论上它也要横向变纵向存数据,也就是说对于一个人,在这个基本信息表中他就要占多行记录,姓名一行,年龄一行,身高一行,这样对于查询又是一件很不方便的事,, 请问如何设计更好呢?????
对于table1通常是定义 姓名,年龄,等字段 ,
对于table2通常是定义 工作日期, 单位名 等字段,
问题数据库一旦设计好,所要统计的信息也就是 姓名,年龄 这些字段了, 一但有一天客户说,我还要统计 身高,这个字段 ,由于数据库没设计这个字段,所以还要添加这个字段,修改代码
来完成, 我现在想要做的是 做一个表,存储用户要统计的字段,,用户可以随时添加,
但是用户基本信息这个表又如何设计呢, 理论上它也要横向变纵向存数据,也就是说对于一个人,在这个基本信息表中他就要占多行记录,姓名一行,年龄一行,身高一行,这样对于查询又是一件很不方便的事,, 请问如何设计更好呢?????
解决方案 »
- 跪求Lucene.net 分组统计!共享搜索代码!
- 哪位的asp。net很棒啊,帮我看一个gridview中commafield功能实现,很简单的但我就是不能够使它的功能实现
- 一个空间能运行两个.net网站吗
- CSDN也解决不了的错误
- 我用VS2005开发,连接SQL Server2000,用到了“成员资格”功能,那么,这个功能使用哪个数据库?
- 在C#中哪种函数一定要定义重新多一次的?
- 急,请问B/S项目,如何将文件保存至客户端
- URLRewriter重写 iis7.0 配置后页面没有样式,图片
- asp.net工程移植到其他服务器上,重新打开出现这样的错误如何解决阿 :(((
- 怎样才能用数组的方式一下得到当前页面Form中的所有控件名称和值?
- 关于TreeView
- 记录IP的作用?
额外属性表:
ID Name
1001 身高额外信息表
EmployeeID PropertyID PropertyValue
张三ID 1001 168CM如果后面需要再对员工增加,体重属性统计,同理,只需在额外属性表与额外信息表中添加记录即可,不必再更改表结构。
还有一个表是记录前面的字段名的解释,也就是
colName,colDesc
---------------
col1 姓名
col2 单位
检索的时候先查第二章表取字段名,根据字段名拼sql语句再查第一张表
不知道我说的呢明白了吗?有点复杂,但代码并不难写
增加一个表储存 所属谁,字段的名,类型等属性后台增加字段写入上面的属性到新增加的表, 并且将这个字段和类型更新到实际的表.(这样做了就不能编辑字段名了,只能删除)然后添加内容的页面从存字段的表中刷新出来自定义字段,输出这个字段的html表示代码.执行添加的时候 也从字段表里筛选出来字段名for (int i 字段个数)
{
字段名[i] = request.form[字段名[i]]}然后将取到的字段名和字段值添加到真实的数据表这是思路. 我已经实现过. 也叫模型, CMS都有这个功能
这个方法理论也可行,
需给连接uid 添加字段权限, 但是这个动态添加的字段可能会很多,,如果太多了,可能也有问题,需要根据多少来动态增加扩展表,,,,,,依然很麻烦,而且需要连接库的权限扩大,,,,,, 是否还有更好解决办法,, 等待高手,高手,高手,高手,高手,高手,高手,高手,
1个字的和几百个字段是一样道理,就是实现起来确实麻烦些.
首先从字段表里面筛选出来,然后解析成html控件输出来,再for循环下这些字段的名称获得集合. 编辑赋值得用ajax.添加字段不需要额外的权限 ALTER TABLE ['+@TableName+'] ADD ['+@FieldName+'] text 即可删除字段需要权限,可以用存储过程来执行.现在大多数带模型的CMS都是这样操作的,你可以下载来直接用他们的代码