一对一关系的最佳方式

Best way for 1 to 1 relationship

我正在制作一种社交网络类型的网站,用户可以在其中对网站上的内容进行多种描述。我创建了一个 ResourceVersions table 来保存数据库的所有实际内容,然后我将它指向数据库中存储关系和内容类型的另一个对象。这样我就可以查询 ResourceVersion table 以查看最近 changed/added 项。例如:

A "Topic" 有一个 "User" 指向一个 "ResourceVersion" 用于描述用户。

或:

A "Topic" 有一个 "Trick" 指向一个 "Resource",它有一个 "ResourceVersion" 和技巧的描述。

或:

A "Trick" 有一个 "UserTrick",它有一个 "UserVideoClip",它指向一个 "ResourceVersion" 来描述该剪辑。

现在的问题是,在数据库中设置 Resources/ResourceVersions 和其他 table 之间的 1:1 关系的最佳方法是什么?我现在将 table 指向 Resources/ResourceVersions 的关系,但是否应该相反?还是这无关紧要?

入口点通常是 ResourceVersion(同时至少加载多个项目,例如在墙上)。因此,当我查询 ResourceTable 并加入它指向的 table 时,它必须搜索外键。如果我转动它,它会使用主键进行搜索。

这真的会改变速度吗?

答案是肯定的,搜索主键效果更好。