我正在使用 Firebird 2.1,我正在寻找解决此问题的最佳方法。
我正在编写一个日历应用程序。不同用户的日历条目存储在一个大日历表中。每个日历条目都可以有一个提醒集——只有一个提醒/条目。
从统计上看,随着时间的推移,日历表可能会增长到数十万条记录,而提醒会少得多。
我需要不断地查询提醒。
哪个是最好的选择?
A)将提醒信息存储在日历表中(在这种情况下,我将查询数十万条 IsReminder = 1 的记录)
B)创建一个单独的 Reminders 表,其中仅包含设置了提醒的日历条目的 ID,然后使用 JOIN 操作查询这两个表(或者可能在它们上创建一个视图)
C) 我可以在 Reminders 表中存储所有关于提醒的信息,然后只查询这个表。缺点是需要在两个表中复制一些信息,例如为了显示提醒,我需要知道事件的开始时间并将其存储在提醒表中 - 因此我要维护两个具有相同值的表。
你怎么看?
还有一个问题:Calendar 表将包含多个用户的日历,仅由 UserID 字段分隔。由于只能有4-5个用户,即使我在这个字段上放了一个索引,它的选择性也会很差——这对于一个有几十万条记录的表来说是不好的。这里有解决方法吗?
谢谢!