数据库作业ER图主键设计咨询及图中问题排查
电影制作公司数据库设计问题解答
一、实体主键选择:名称 vs 新增ID属性
- 优先用
company_id这类独立属性当主键- 名称容易变:欧洲电影公司可能因为并购、品牌升级改名字,要是把名称当主键,所有关联表(员工所属公司、电影制作方、资助记录)的外键都得跟着改,不仅麻烦还容易搞出数据不一致。
- 名称可能重:不同地区甚至同地区都可能有同名的制作公司,或者旧公司倒闭后新公司用了同一个名字,用名称当主键根本区分不开这些实体。
- 性能更好:数值型或UUID主键在索引、关联查询时的性能比字符串名称强,尤其是你这个数据库要支撑机器学习分析,数据量大概率不小,性能差异会更明显。
- 如果要保证名称唯一:可以给名称加唯一约束(Unique Constraint),但主键还是用独立ID,唯一约束只用来防止业务层面的重名问题。
二、ER图错误排查需要的细节
要找出ER图里的问题,得给我这些信息:
- 每个实体的具体属性,还有属性的数据类型、约束(比如能不能为空、是不是唯一)
- 实体之间的关联类型:一对一、一对多还是多对多,外键怎么设置的
- 特殊业务规则:比如员工能不能同时在多家公司任职、一部电影有没有多个制作/资助方、资助有没有时间或金额的特殊限制
- 机器学习分析的具体需求:比如要分析哪些维度(比如公司营收趋势、员工流动和电影票房的关联),这会影响实体属性和关联设计的合理性
内容的提问来源于stack exchange,提问作者Anastasis Kefalas
相关产品推荐
相关产品推荐

