我正在建立一个系统,我希望每天为每个用户(1000+)添加一组值。
假设: 我可以在这个系统中记录 Alice 和 Bob 何时醒来以及他们在 2019 年 8 月 1 日或 2024 年晚餐吃了什么。
关于如何最好地构建数据库表有什么建议吗?
具有主要人员 ID 的人员表? 行:n
带有主日期 ID 的日期表? 行数:米
还有一个 personDate 表将人员 ID 和日期 ID 作为外键? 行 n x m
最佳答案
我认为您不需要日期表,除非您想使用它来使特定查询更容易。比如左连接反对日期来看看你错过了哪几天的事件。尽管如此,我还是坚持使用 DATE 或 DATETIME 作为字段,并避免创建单独的代理外键。它不会节省任何空间,并且可能会表现更差,并且对开发人员来说更难以使用。
这对我来说似乎简单又好。我不会太担心仅基于元素数量的性能。您可以毫无问题地插入十亿条记录,这意味着一个非常大的站点。
如果事件没有发生,就不要插入记录。换句话说,您希望数据库随着实际使用情况而增长。避免基于幻象事件的增长,你应该没问题。
person
person_id
action
action_id
personAction
person_id
action_id
action_datetime
关于mysql - 数据库设计: Value(s) per user per day,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57327392/