我有以下情况,我想知道你的意见和投入。我的申请有一家公司。每家公司都有很多部门,而这些部门又有很多用户。我有一个所有级别的日历。因此,公司有一个中央日历,每个部门有单独的日历,每个用户有单独的日历。当用户对公司中的事件感兴趣时,他/她可以将它添加到他们的calendar.Now中,我需要有一个或多个事件表。
所以这更像是一张桌子对三张桌子。
发布于 2010-07-05 21:58:16
查看应用程序需求--如果不同级别的事件本质上是相同的(具有相同的数据需求、行为),那么您可能应该只使用一个表。如果它们将是不同的,那么使用不同的表。
发布于 2010-07-05 21:58:59
我不认为事件需要知道他们是否属于公司,部门的用户直接。我怀疑事件属于日历,日历属于公司、部门或用户?
因此,日历表:
CALENDAR_ID
然后是一个事件表
EVENT_ID
和一个"EVENT_TO_CALENDAR“表(为了许多到多个关系的目的:
CALENDAR_ID
EVENT_ID
如果用户可以在公司日历中看到事件,他们可以说“将其添加到挖掘”,这将在EVENT_TO_CALENDAR表中创建一个新记录,该记录具有相同的EVENT_ID,但具有唯一的CALENDAR_ID。该事件现在链接到每个日历(公司和用户的日历)。
发布于 2010-07-05 22:01:44
我想我会为三张桌子辩护。首先,如果您选择一个表,它将得到三个可空的外键。这意味着您不能仅仅从数据库模型中保证一致性,但是您必须在业务逻辑的某个地方保证它的一致性。其次,随着时间的推移,你很可能会发现公司日历与员工或部门日历略有不同。例如,后者可能需要增加一列。你只是无法预测。
https://stackoverflow.com/questions/3183806
复制