1

我有一个事件表,其目标是存储网站用户所做的操作。一个动作基本上改变或在表 X 中创建一个新行。这将允许我存储用户完成的所有动作的历史记录。因此,事件包含:

  • 主键列
  • 描述事件的文本(例如:“发表评论”)
  • 如果需要,一个鉴别器列
  • 另一个表 A 的外键列
  • 另一个表 B 的外键列
  • ……
  • 另一个表的外键列 N

Events 表中的一行将只设置一个外键列,所有其他列都将为空(因此它们都可以为空)。该表的行为类似于事件所涉及的实际表的间接表。我不知道是否需要鉴别器,因为所有信息都包含在外键列中。表 A 到 N 可以是任何东西。如果需要,它们的域模型类可以有一个公共接口(IEventRecordable)。

我的问题是:Events 表和 Event 类之间是否可以映射?使用流利的 nhibernate 是否特别可行?可以不用创建很多 Event 的派生类(我不想创建那么多空的子类)就可以做到吗?理想情况下,Event 类如下所示:

public class Event
{
    public virtual int Id { get; set; }
    public virtual IEventRecordable ActualEvent { get; set; }
    public virtual string EventDescription { get; set; }
    DateTime EventDateTime { get; set; }
}

领域模型类中的很多类都可以实现 IEventRecordable(主要是一个空接口)。它可以是 User 表或 BlogComment 表...

谢谢

4

1 回答 1

2

如果您忘记了多个外键列,则可以将其设为<any> 映射

于 2008-12-02T21:17:40.393 回答