我想设计一个数据库来存储对象,这些对象是不同类的实例,但是从一个公共类扩展而来。与对象一起,我将存储将用于标识对象的键。密钥对象之间的关系是N-1单向(密钥 - >对象)。
我想过使用Google App Engine的数据存储来创建两个实体(ObjectEntity和KeyEntity)。
@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class KeyEntity{
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key id;
@Persistent
private String keyForObject;
@Persistent
private ObjectEntity object;
//setters and getters
}
@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class ObjectEntity{
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key id;
@Persistent
private String objectName;
@Persistent
private CommonParentClass object;
//setters and getters
}
这是正确的方式还是有更好的存储对象的方法?