在一个表中有几个外键是一种好习惯吗?

Moh*_*mad 4 sql foreign-keys

请考虑以下表结构:

titles(titleID*, titleName)  
platforms(platformID*, platformName)  
products(platformID*, titleID*, releaseDate)  
publishers(publisherID*, publisherName)  
developers(developerID*, developerName)  
products_publishers(platformID*, titleID*,publisherID*)  
products_developers(platformID*, titleID*, developerID*)  
Run Code Online (Sandbox Code Playgroud)

products表是一个使用platformID和titleID的两个外键的joiner表.这是因为某些标题在不同平台上具有相同的属性.为了避免数据重复,我创建了joiner表.

当我创建products_publishers表时,我的问题出现了.因为一个产品可以有多个发布者,所以我必须创建一个由三个外键构成的joiner表.这是最佳做法吗?我的场景可以让我创建一个包含四个这样的条目的表.我考虑使用一列来将这些数据存储在products表中,并放弃了joiner表和publisher表,但直觉上这感觉不对.

有什么想法吗?

非常感谢

小智 6

这完全没问题,在实践中很常见.我认为我用过的每个数据库都有这样的表格.