哪种表设计更好?

时间:2015-05-13 14:59:16

标签: php mysql database

我的数据库中有两种不同的表设计,它有相同的用途,这是第一个设计

Table Name   : User                 Table Name   : Topic
Table Column : - idUser             Table Column : - idTopic
               - username                          - topicName
               - email                             - topicDescription

Table Name   : UserFollowing
Table Column : - id_user
               - relatedTable
               - relatedId

所以,我有一个关于用户可以关注主题的项目,用户可以关注另一个用户,在第一个设计案例中,我创建了一个名为UserFollowing的表,用于连接哪个行用户跟随(relatedID)以及哪个类型跟随(User或Topic)用户遵循使用relatedTable。

这是我的第二个设计

Table Name   : User                 Table Name   : Topic
Table Column : - idUser             Table Column : - idTopic
               - username                          - topicName
               - email                             - topicDescription

Table Name   : UserFollowUser       Table Name   : UserFollowTopic
Table Column : - id_user            Table Column : - id_user
               - id_user_following                 - id_topic_following

哪一个更好实现?第一个还是第二个?

1 个答案:

答案 0 :(得分:1)

如果你考虑约束,你应该明确地使用第二个。

即使您没有使用innodb并尝试通过应用程序层构建自己的约束,将一个外部列分配给一个父列也非常有用。它更干净。