我有一个事件表,其目标是存储网站用户所做的操作。一个动作基本上改变或在表 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 表...
谢谢