数据库表动态列的设计-阿里云开发者社区

开发者社区> zting科技> 正文

数据库表动态列的设计

简介:
+关注继续查看
在我们设计数据库时,经常会遇到这样的问题,就是表中的某个是不固定的,随着用户需求的变化,该列可能会增加等问题,
就像上图中的灌溉方式:目前可能有三种灌溉方式,
可是以后随着用户的需求增加,又会有新的灌溉方式,如:人工灌溉之类的,
遇到此类问题,通常会有两种解决方案,
一:新建一子表,
该表结构大概如下:
编号   渠灌   喷灌   水车  Class1  Class2 ......
就是在建表时会首先预留几个列,为了以后的扩展用,
这样的方案虽然简单,但是也会体现出下列几种问题,
1:如果以后要新增个人工灌溉,那我们新增的人工灌溉如何与数据库中的列进行绑定?
2:而且建表时会首先预留列也不好控制,到底预留几列才算合适。。。。
二:在增加灌溉方式的时候,要动态的向数据库中 增加字段,(
sql = "alter tableName add columnName type(length)";
那前提得在前台绑定下的,
比如:渠灌是对应数据库表中的哪个字段,喷灌是对应数据库表中的哪个字段等等
如果我们遇到的问题比较简单我们一搬会选择第一种方案,
如果我们遇到的业务比较复杂,我们见意还是选择第二方案,
这样以后我们的维护也会简单的多,


本文转自左正博客园博客,原文链接:http://www.cnblogs.com/soundcode/archive/2011/04/15/2017254.html,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
mysql 5.7 修改数据库表
修改数据表 修改数据表是修改数据库中已经存在的数据表的结构。MySQL使用alter table 语句修改表。常用的修改表操作有:修改名,修改字段数据类型或字段名,增加和删除字段,修改字段的排列位置,更改表的存储引擎,删除表的外键约束。
584 0
Hibernate 动态表名映射(数据库分表) NamingStrategy
NamingStrategy接口很有意思,可以作为业务类规范和数据库表规范的桥梁,例如一个数据对象User,对应数据库表是 T_USER,如果所有映射关系都是这样的情况,可以使用NamingStrategy做为一个桥梁衔接,当然你也可以在hbx.xml配置文件中指定 class对应的table.   hibernate.cfg.xml代码就省略了...   User.hbx.xml代码 &
4025 0
采用左右值编码来存储无限分级树形结构的数据库表设计
本文转载:http://www.cnblogs.com/yongzhi/articles/1187149.html 这篇文章也很不错:http://hi.baidu.com/zhizheqianlv/item/543fd806c92673db73e6761c
1008 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
4479 0
关系数据库设计中,用中间表好还是直接设定主外键关联好?
有人会对数据库有这样的疑问: 因为大多数的数据库教程上都是告诉你关系数据库如何去创建1:1、1:N和N:M的数据库关系,但我发现很多开源产品中,并没有直接使用关系数据库的关系查询、关系删除等功能,而是直接在代码中对多个表的查询结果进行组合。
1202 0
带你读《Java程序设计与计算思维》之二:认识数据处理与表达式
程序设计的过程就是一种计算思维的表现,《Java程序设计与计算思维》结合Java程序设计语言的教学特点,遵循计算思维的方式,图解重要概念,通过大量的范例程序讲解和上机编程实践来指导读者活用Java程序语法,兼顾培养计算思维和学习面向对象程序设计的双目标。
440 0
mysql数据库表记录数
经常用到,在这里记录一下,使用的命令 use information_schema; select table_name,table_rows from tables where TABLE_SCHEMA = '数据库名' order by table_rows desc; 查询出来的是每张表的行数
1328 0
+关注
3441
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载