使用一个更大的表或OneToOne关系?

时间:2018-04-22 11:59:14

标签: sql postgresql

我有一个具有不同属性的实体公司。

其中一个属性是徽标,但徽标本身的特征是其他属性,如文件名和类型。

公司与徽标之间的关系是一对一的,必须有徽标。

我应该将所有内容添加为公司的属性/列,还是应该为Logo及其特征创建单独的表?

使用相同的表我避免数据库中的连接或其他查询,加上更多编码,使用单独的徽标表有什么好处?

1 个答案:

答案 0 :(得分:3)

单独徽标表的优点是您可以扫描companies表而无需阅读徽标信息。如果它只是少数几列,这可能不会有所不同。在某些情况下,它可以。

支持单独表格的一个论点是,其他实体是否想要专门连接到徽标而不是公司。如果是这样,单独的id将允许这样的外键关系。

我可能会质疑公司只有一个徽标的概念。首先,公司可以拥有多个拥有自己徽标的品牌,或者他们可能在不同的地理位置/语言中拥有不同的徽标。其次,徽标可能会随着时间而改变。如果你想保留一段历史,那么另一张桌子就不费吹灰之力了。