Okey,上下文:
我的系统需要每月,每周和每日报告。
架构 A : 3桌: 1)每月报告 2)每周报告 3)每日报道
架构 B :
1表:
1)报告:使用额外列report_type
,其值为:"每月","每周","每日"。
哪一个会更高效,为什么?
答案 0 :(得分:0)
我使用的常用方法是使用两个表,类似于B方法。您可以使用报告数据和额外列来描述一个表,但是此列不会对值进行硬编码,而是将id保存到引用表。然后,参考表将保存这些值的名称。此设置允许您在以后需要时轻松引用其他表的间隔,但也可以使名称更新更加高效。将“每月”的名称更改为“月”将需要在此处进行一次更新,如果您将字符串存储在报告表中,则需要更新。
样本结构:
report_data | interval_id
xxxx | 1
interval_id | name
1 | Monthly
作为旁注,由于它限制了更改输入数据的间隔类型,因此很少需要采用第一种方法,即方法A.如果您突然想要将每日条目的一半更改为每周条目,则需要执行n / 2次删除和n / 2次插入,这相当昂贵,尤其是如果您开始引入索引。通常,表格应描述数据类型(即报告),列应描述该类型(即报告发生的频率)