值对象是否需要持久化

07-11-02 d27
大家讨论一下

如果值对象需要储存,应该如何设计类与数据库中表

举个例子

User与Role的关系

User与Role是多对多,还是多对一关系

很明显,User是实体,Role是值对象,User可以作为聚合根,两者的关联应该设计成 User对 Role的单向关联,我个人觉得User has-many Role, Role没有到User的关联, 因此应该是 多对一的关系.

如果是多对一的关系,数据库如何设计呢

user表: user_id, name

role表: role_id, title (主键role_id有必要存在吗), user_id(这是外键)

但问题是 Role我想设计成不变性,User可以共享Role,这样数据库好像不好设计--role表中title应该是唯一的

哪位高人可有高解

猜你喜欢