我需要3个表来记录用户活动 - >创建,登录和他的设备活动。
最好有一个包含公共列(ip, date, type_of_log, external_id_of_log)
的通用表和包含附加数据的3个表
或
由于UNION命令,只有3个表具有相同的列(+附加数据)并获取数据(按日期排序)?
答案 0 :(得分:1)
这完全取决于你的目标是什么。统一(非规范化)表意味着您将获得更好的性能,代价是稀疏数据(以及处理空值的所有复杂性)。标准化表以较低的性能为代价,为您提供更简洁的数据,更好的关系完整性等。
没有"正确"在这里回答,这一切都取决于你想要实现的目标。默认情况下,我通常从完全规范化的表开始,直到我想出一个非规范化的理由。