我有以下课程:

User (can have many businesses, franchises and posts)

Business (belongs to a user - can belong to MANY users at the same time, has many galleries)
Franchise (belongs to a user - can belong to MANY users at the same time)
Post (belongs to one user, has many galleries)

Gallery (belongs to one business or post, has many media)
Media (belongs to one gallery)

我想为这些数据设计一个好的数据库,我可以想到两个选择:

  • (低音表方法)为每个类创建表,以及额外的表'entities'和'user_entity',并使Business,Franchise和Post中的每一个成为'实体',然后通过user_entity表将用户链接到实体,最后添加在gallery表上的entity_id,用于指示每个库的所有者 .

  • (多态方法)为每个类创建表,并使用额外的表'user_business'和'user_franchise'将用户链接到他们拥有的业务和特许经营权 . 在posts表上还有一个user_id字段,用于将每个帖子链接到用户 . 最后在gallery表上有gallery_owner_id和gallery_owner_type字段,其中id将链接到business或page id,type将是gallery owner的类名 .

该系统预计将来会增长 . 哪种方法会更好?为什么?也许还有其他选择我还没有考虑过?

任何信息或建议将不胜感激 .