Q: 如何在开发后期修改表结构对现有程序影响最小 表设计是预留一个无任何业务意义的字段,比如userFiled1,userField2,....方便以后与具体业务字段映射 设计一个特殊的字段存放XML文件,XML文件中存放自定义的结构,方便系统扩充。存取是需要解析XML字符串 通过象Hibernate这种物理表结构和对象逻辑结构的映射。修改发生在物理表结构和hibernate mapping 文中 在java类中,用不可变的字符串定义了表名和字段名。如 public const String CUSTOMERS_TABLE = "Customers"; public const String EMAIL_FIELD = "Email"; public const String NAME_FIELD = "Name"; 这样修改只发生在少量的地方。 Q:如何提高性能 为特殊的业务需求,比如支付平台的reconciliation和settlement,建一张影子表(比如paymentShadow),冗余其他相关表的字段。通过这种手段减少关联查询提高效率。 不设外键甚至主键,这种方式有点像No SQL的方式,但确实在商业应用系统中碰到过。
我们知道session 实现有好几种机制,比如cookie, url-rewriting, etc. When cookie is disabled on client side, most of time we can refer to use response.encodeURL or encodeRedirectURL to add a param jsessionid to identify the client and context.
processAction processEvent render serveResource
摘自http://deng5566.iteye.com/blog/678817,仅供自学。
字段冗余 Sharding 水平切分:分库,分表 根据一个标志字段如user id 问题:如何路由? 集群(Cluster),负载均衡(找到集群中的DB) 读写DB分离 Master DB(写),Slave DB(读),一般读写比例是10:1
give a child a hammer, everything becomes a nail.
different perspectives SOA:
Fagan's Inspection