俺在开发之前, 要对数据表的结构进行设计, 但遇到了一难题, 想请教各位大哥问题:
在开发过程中, 因为某种原因, 要对已经设计好的数据表结构增加一个字段, 在不允许修改原表的结构的情况下, 如何解决呢??举例: 一个商品表, 有这样的结构: 商品ID, 商品名字, 商品规格, 但是在开发的过程中, 有需要为商品表增加一个字段: 商品价格, (而且以后会有可能不定时地继续增加一些新的属性字段, 例如商品的长度, 宽度等) 由于已经有很多的程序都使用了之前的表结构, 现在不允许修改原来的表结构, 想请问有什么办法可以解决??如果可以通过新建表来解决上面的问题, 应该如何设计呢?? 新建的表中, 是否可以解决引用外键的问题呢?? 相关帖子:(100分) http://community.csdn.net/Expert/topic/4622/4622502.xml?temp=.2389795可以拷贝一份您的答案到上面的帖子中, 如果能够解决该问题, 也方便俺送分给大哥 :-)望各位大哥, 不吝赐教, 谢谢!!!
在开发过程中, 因为某种原因, 要对已经设计好的数据表结构增加一个字段, 在不允许修改原表的结构的情况下, 如何解决呢??举例: 一个商品表, 有这样的结构: 商品ID, 商品名字, 商品规格, 但是在开发的过程中, 有需要为商品表增加一个字段: 商品价格, (而且以后会有可能不定时地继续增加一些新的属性字段, 例如商品的长度, 宽度等) 由于已经有很多的程序都使用了之前的表结构, 现在不允许修改原来的表结构, 想请问有什么办法可以解决??如果可以通过新建表来解决上面的问题, 应该如何设计呢?? 新建的表中, 是否可以解决引用外键的问题呢?? 相关帖子:(100分) http://community.csdn.net/Expert/topic/4622/4622502.xml?temp=.2389795可以拷贝一份您的答案到上面的帖子中, 如果能够解决该问题, 也方便俺送分给大哥 :-)望各位大哥, 不吝赐教, 谢谢!!!
解决方案 »
- 急,急,急。AJAX 注册用户 判断是否重复。 取不到数据
- 关于Accordion控件Button去掉PostBackUrl
- 如何实现Sql和Oracle的同时支持
- 诚心请教一个地址重定向的问题
- OleDb数据库动态连接问题
- 不知道为何不能通过验证,请大家指点!
- 在有验证控件的页面上想点击一个服务器端按钮不用验证控件验证,怎么办
- 软件系统与人体的比喻!非常经典^_^非常经典^_^非常经典^_^,希望大家各自就此发表自己的看法,谢谢
- 全局变量在不同用户在同时登陆时被后登陆更新问题,求救!!!!!!!!!!!!
- 手动生成一个XML文件,输出到浏览器中,如何替换其中的特殊字符,如&, >, <等?
- 找个简单的天气预报,最好是一个控件或者一个类什么的,谢谢帮顶
- DataGrid控件的绑定问题?
谢谢您的回答, 按您所说的, 如果我以后要再新增一个字段, 是否又以 商品ID 为主键另建一个表呢?? 显示这种方法行不通
谢谢您的回答, 假设您的方案对于存储数据能够行得通(先不讨论是否所有的类型都能正常转换为字符串), 但是如果用户要对数据表的数据进行查找的话,例如: 用户要查找商品价格在某个范围里面的数据, 正常条件应该是 Price >= 某个最小值 and Price <= 某个最大值, 但是因为在数据表中的数据全部都是字符串, 没办法实现用户的查询要求.显然您的方案行不通, 再次谢谢您的回答 :-)
如有业务需要就通过update修改来统一整个表的(新增字段)值
这样就不破环表结构啦,源程序也不用做任何改动!需求是在开发过程中算不上频繁改动,但也免不了改动,
如每新增一个字段就新建一张表进行关联,读取数据的速度不说,
给自己的开发也会带来不必要的麻烦!
insert table(c1,c2) values('1','2')这样做,加栏位就不会影响到原程序。
2对于有一些栏位可以新增一张table,通过关联表也有助于数据库的结构
设计一个主表, 包含大多数商品都会用到的属性. 为这个主表设置一个扩展属性列, 列的类型使用xml数据类型, 由于xml是非常易于扩展的自描述性语言, 所以扩展属性可以根据你的业务变化随时调整, 而借助于sql 2005 对于xml的强大支持, 解析和查询也很容易.
针对您的回答:
主表的设计按常规设计方法
从表的设计可以简单地使用: 商品编号 属性名称 属性值查扩展属性的时候做一个行列转换.
=========================================
如果按您所设计的这个表的结构, 属性值列的类型应该是 varchar, nvarchar, text 等的类型, 但是如果商品的数据都以字符类型的方式存到数据表中, 例如: 商品价格(Price), 原为数值型, 存到数据表中的时候是字符型. 如果用户要对一定范围的商品价格进行查询 (Price>=100 and Price<=200), 那么如何对数据表进行查找(因为存放到数据表中的时候都是字符型, 而不是数值型)另外, 还有一个问题: 如果存到 从表中的属性值为另外一个表的外键,(假设从表中的一条记录:属性名称为商品的类别或商品所属的国家, 对应的属性值为商品的类别ID 或商品所属的国家的ID), 那么用户在查询的时候如何根据 从表中的商品类别的ID, 到类别表中找出相应的类别名称呢?? 谢谢~~~