zoukankan      html  css  js  c++  java
  • 【原创】不定字段的数据库表设计思路

    有个同事问我一个问题,简单的描述就是,如何动态的给表实体增加列。举个例子,有一个商品表:
    [code]id,名称,价格,描述,产地[/code]
    建表如下:

    create table product(
    n_id number,
    c_mc varchar(10),
    n_jg number(10,2),
    c_ms varchar(200),
    。。。。。。
    )
    

     假如未来需要增加新的属性,怎么办呢?表已经建好,难道要动态的增加列吗?我曾经面临过这个问题,实体要动态的增加属性,增加的又是未知类型未知长度,怎么办呢?
    参考我曾经收藏的一篇文章吧:

    http://www.tuicool.com/articles/RF7f2y
    

     
    说下我的看法:
    1.在数据库中,避免在业务逻辑中执行动态的ddl,如创建表,修改表等。
    2.避免动态创建列,或者说避免横向扩展,本着一个原则,只要表创建了,就不应该由业务逻辑来修改它,只能由dba或者在升级的时候修改。
    3.非要扩展,也应该纵向扩展,以记录的形式迂回实现,因为这样扩展性好。如果动态增加列,假如属性增加到几十万,根本没有这么宽的表了,而纵向扩展不存在这个问题。简单的说就是列转行。

  • 相关阅读:
    [转]线程同步
    [转]C#线程同步(1)- 临界区&Lock
    获取系统空闲时间
    [转]一分钟明白 VS manifest 原理
    泛型总结
    wpf listbox touch 整个窗口移动
    git问题 next fetch will store in remotes/origin
    创建maven项目出现的问题
    JPA
    JDK JRE JVM
  • 原文地址:https://www.cnblogs.com/zhangxsh/p/3610715.html
Copyright © 2011-2022 走看看