我有一个设计问题,我很欣赏一些输入。
我想根据以下4个表制作一个日历事件系统:
tb_events
ID, 日期, 总之,
tb_group
ID, 名称, 父母, 谱系,
tb_course
ID, 名,
tb_staff
ID, 名称, 电子邮件,
事件类目前设置为
id
summary
date
calDetails IList<CalDetails>
类CalDetail
id
name
我的困境是是否使用一个连接表 - 将eventID链接到一个组,课程或工作人员的ID 或者是否将组,课程人员集合添加到事件类中。
拥有一个集合可以更容易在hibernate中进行映射,但我想知道使用3个连接可以获得什么样的性能。 (事件表最多可包含10-20000条记录)。 此外,由于我在查看事件时只需要name属性,因此使用一个集合可以更轻松地向混合中添加另一种“事件详细信息”。
如果我要使用一个集合,是否可以在NHibernate中映射它。我环顾四周寻找例子,却找不到任何例子。哪种让我觉得这可能不是一个很好的方法。
无论如何,我会感激任何想法。
答案 0 :(得分:2)
小心不要过早优化性能。你不太可能遇到性能问题,如果它们浮出水面,它们很容易被规避。我会从最无摩擦的路线开始。你会那么开心。
答案 1 :(得分:1)
如果您使用3个连接的天真方法,您可能会受到巨大的性能影响。 Ayende有一些使用MultiCriteria来恢复性能的例子。
如果有意义的话,你也可以去子类路线。