0
我想为日历应用程序设置PostgreSQL数据库,并想知道设置其中一个表的首选方式是什么。数据库表设计/设置
如果我想必须有多个用户,将设置的最佳方式表:
用户名|开始时间|结束时间|活动|
或者这将是更好的事:
用户ID |活动| 8am |上午8:30 |上午9点| ... | 12am | ... |上午7:30 |
时间粒度可能是15分钟或5分钟,如果这将是更好的选择。
第一种方式可能会更干净,但理想情况下我不想让事情重叠,但第二种方式可能更难以使用?
第一种选择更好。但是,也许你应该实施第二种选择,以便了解为什么这是一个糟糕的设计。所以...如果你真的想要制作一个工作的应用程序,那就去#1。如果你想学习一个负面的教训,去#2。祝你好运。 –
*“理想情况下,我不想让事情重叠......”*要做到这一点,第一种方法,你可能需要实现StartTime,EndTime作为[范围数据类型](https://www.postgresql .org/docs/current/static/rangetypes.html),并使用排除约束(相同的链接)来保证没有重叠。您可能也需要btree_gist扩展名(同一链接)。 –