数据库表设计

2017/02/12 iteye

Q: 如何在开发后期修改表结构对现有程序影响最小

  1. 表设计是预留一个无任何业务意义的字段,比如userFiled1,userField2,....方便以后与具体业务字段映射
  2. 设计一个特殊的字段存放XML文件,XML文件中存放自定义的结构,方便系统扩充。存取是需要解析XML字符串  
  3. 通过象Hibernate这种物理表结构和对象逻辑结构的映射。修改发生在物理表结构和hibernate mapping 文中  
  4. 在java类中,用不可变的字符串定义了表名和字段名。如           
public const String CUSTOMERS_TABLE = "Customers";     
public const String EMAIL_FIELD     = "Email";     
public const String NAME_FIELD      = "Name";     

这样修改只发生在少量的地方。

Q:如何提高性能

  1. 为特殊的业务需求,比如支付平台的reconciliation和settlement,建一张影子表(比如paymentShadow),冗余其他相关表的字段。通过这种手段减少关联查询提高效率。
  2. 不设外键甚至主键,这种方式有点像No SQL的方式,但确实在商业应用系统中碰到过。

Search

    Table of Contents