我只是想从设计、效率和空间的角度来看,什么是更好的选择?自加入或使用两个表然后加入它们?
我有一个存储产品设计细节的 MySQL 数据库,designer_type
可以是company_staff
,也可以是某个customer_type
.
最初我想有两张桌子,一张叫staff_design
,一张叫customer_design
。
无论哪种方式,design
信息都几乎保持不变,除了如果它是客户,还有两个额外的列是 staff_design 不需要的,一个是 a 的 ID 的外键staff_design
,另一个是design_name
(用户和不是工作人员可以添加)。这 2 列都可能为 NULL。
因此,如果我设计数据库以使这两个表合并并且只有一个design
表,那么该表将有 3 个额外的列,这些列可能经常为 NULL:它需要有design_type
(指定customer
,或staff
),然后我上面提到的两个额外的列。(design_name
和staff_design
FK)。
哪个设计更好?
我倾向于单表设计,主要是为了减少硬盘处理(获取两个不同的表而不是一个)。然后我将不得不使用大量的自我连接。
什么被认为是专业的更好的方法?预计staff_designers 将保存数千个设计,而只有高级和额外付费的客户才能保存他们自己的定制设计。因此,员工设计肯定会比客户设计多得多。