对象所有者的架构问题

时间:2011-01-11 22:21:22

标签: mysql database schema relationship

我在user表中有一个user_id colunm。接下来我在品牌表中有一个brand_id。每个用例都有自己的页面:用户有个人资料,品牌有品牌页面。 (注意:Thgere是这样的更多关系。公司有公司页面,城市有城市页面等)。因此,当用户上传照片时,我需要将其引用给所有者。所有者可以是品牌,用户,城市,组织等。

对于用户而言,它很简单,photo_id属于user_id,其中user_id是FK到用户表。但是要将brand_id添加为照片的所有者,我是否需要单独的colunm,或者如果我将其重命名为owner_id(用户ID或品牌ID),可以在user_id colunm中完成吗?

2 个答案:

答案 0 :(得分:0)

2列,双手向下。 (其中一个当然必须为空)

使用单个列您会遇到许多问题:

  • 没有DB级参照约束(=外键)
  • 品牌和用户表之间ID冲突的风险
  • 混淆

答案 1 :(得分:0)

您可以为每个创建一个映射表,例如user_photosbrand_photos

这样,您就可以从user_photosuser以及brand_photosbrands拥有完整的参照完整性。这对于过滤用户/品牌照片的查询也会对性能产生负面影响。