值物件是否需要持久化

d27發表於2007-11-02
大家討論一下
如果值物件需要儲存,應該如何設計類與資料庫中表
舉個例子
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應該是唯一的

哪位高人可有高解

相關文章