NHibernate映射消息逻辑

NHibernate映射消息逻辑,nhibernate,nhibernate-mapping,Nhibernate,Nhibernate Mapping,我创建了一些表示消息逻辑的类: 消息-消息的表示形式:) MessageBoxBase—所有3种messagebox的基类 MessageInbox-表示收件箱 MessageOutbox-表示发件箱 MessageCustombox-用户定义的消息框 MessageBoxItem—任何messagebox中包含IsReaded等数据的消息项 MessageBoxCollection-MessageBox的集合-收件箱、发件箱和自定义框列表-仅这3个属性 最后,在我的agregate roo

我创建了一些表示消息逻辑的类:

  • 消息-消息的表示形式:)
  • MessageBoxBase—所有3种messagebox的基类

  • MessageInbox-表示收件箱

  • MessageOutbox-表示发件箱
  • MessageCustombox-用户定义的消息框
  • MessageBoxItem—任何messagebox中包含IsReaded等数据的消息项
  • MessageBoxCollection-MessageBox的集合-收件箱、发件箱和自定义框列表-仅这3个属性
最后,在我的agregate root用户中,有MessageboxCollection,我可以这样使用它:

myUser.MessageBoxes.Inbox.Add(...)
myUser.MessageBoxes.Outbox.Items....

我现在没有任何DB结构,我对sugestion持开放态度,但我在想这样的事情:

myUser.MessageBoxes.Inbox.Add(...)
myUser.MessageBoxes.Outbox.Items....
  • MessageInInbox-用户ID、MessageId、IsReaded等
  • MessageInOutBox-与收件箱中的相同
  • MessageInCustomBox-UserId、MessageId、CustomBoxId等
  • CustomBox-BoxId、UserId、BoxName等
  • 消息-普通消息行、主题、内容、作者等
我可以肯定的一点是,我不想为每个用户的每个收件箱/发件箱创建DB行,就像在CustomBox中一样(比如为每个用户的收件箱和发件箱创建不必要的字典)

在这一点上,我有一个问题-他妈的该如何映射它呢


你有什么建议吗?也许我的域名很烂?我在等待您的答复:)

有一个更简单的解决方案,即您只有两个名为messages和box的数据库表

消息-(Id,IsRead,Subject,Message,Sender,UserId,BoxId)

框-(Id、名称、用户Id)


此解决方案现在允许用户拥有多个自定义框,并且应始终为其创建默认值。对象模型可以是用户有一个框列表,每个框都有一个消息列表。

就像我说的-我不习惯在DB中创建“默认”框。