值对象是否需要持久化

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应该是唯一的

哪位高人可有高解