有以下几个类,
class Animal {
public int quantity ; // 重量
};class Human {
public String name;
public String nationality;
public int age;
};class Panda {
public int healthyState;
};对于 Human , Panda,(未来还有可能其它的派生), 我要把对象存储到数据库中,
问题是:
如何设计表?
下列两种方式哪种更合理?设计1:
用1个表
Table_For_All_Type字段名 类型(略) 约束(略) 备注
quantity
name 对Human有意义
nationality 对Human有意义
healthyState 对Panda,解释为healthyState,对于Human解释为age设计2:
用两个表
表一 : Table_For_Human字段名 类型(略) 约束(略) 备注
quantity
name
nationality 表二 : Table_For_Panda字段名 类型(略) 约束(略) 备注
quantity
healthyState似乎第二种设计比第一种设计好些(可扩展性好些),你的意见呢?是不是有更好的设计,来支持继承?(这里在基类中的quantity想复用)。
class Animal {
public int quantity ; // 重量
};class Human {
public String name;
public String nationality;
public int age;
};class Panda {
public int healthyState;
};对于 Human , Panda,(未来还有可能其它的派生), 我要把对象存储到数据库中,
问题是:
如何设计表?
下列两种方式哪种更合理?设计1:
用1个表
Table_For_All_Type字段名 类型(略) 约束(略) 备注
quantity
name 对Human有意义
nationality 对Human有意义
healthyState 对Panda,解释为healthyState,对于Human解释为age设计2:
用两个表
表一 : Table_For_Human字段名 类型(略) 约束(略) 备注
quantity
name
nationality 表二 : Table_For_Panda字段名 类型(略) 约束(略) 备注
quantity
healthyState似乎第二种设计比第一种设计好些(可扩展性好些),你的意见呢?是不是有更好的设计,来支持继承?(这里在基类中的quantity想复用)。
用两个表
表一 : Table_For_Human
字段名 类型(略) 约束(略) 备注
quantity
name
nationality
表二 : Table_For_Panda
字段名 类型(略) 约束(略) 备注
quantity
healthyState如同你所说,可扩展性好些,两表需要某字段进行关联,例如:quantity.
表一 : Human
字段名 类型(略) 约束(略) 备注
quantity
name
nationality
表二 : Animal
quantity
healthyState。
。
。
type:--》animal的type
。可以将字段设为可空,插入时插入相关字段和type
字段名
id
quantity
type (鉴别器)表二 : Table_For_Human (存放Human特殊属性)
字段名
Animal_id
name
nationality
age表三 : Table_For_Panda (存放Panda特殊属性)
字段名
Animal_id
healthyState