不是问题,而是关于最佳实践的问题以及将来对我有用的问题。
我有许多表,其中包含链接到我的架构中的帐户的数据 - 服务,位置,提供商等。
我有两个选择,我可以向我的所有表中的帐户添加一个外键,这将减少所需的连接数,但可能会增加存储的数据和(可能?)导致不一致。
所以,我的问题是,我应该在服务,地点等方面添加帐户FK,还是依靠连接为我管理?
答案 0 :(得分:1)
在不知道数据库结构的情况下,很难给出正确的答案。但是,让我们以一个表providers
为例。如果提供商只能拥有一个帐户,那么我会在providers
表中添加一个FK。如果情况并非如此,那么我就不会使用FK,因为它不起作用。
外键是将事物联系在一起,因此没有不一致。因此,如果您有一个employees
表和一个departments
表,employees
将有一个FK到departments
,因为员工只能在一个部门。
答案 1 :(得分:0)
你似乎在理解FK和他们给你的东西方面遇到了一些麻烦。
您的FK应该加入带有PK(主键)的表,这样可以确保表之间的数据完整性。
但是,如果不对FK的列编制索引,则它将是未编制索引的FK,这可能会导致对联接进行全表扫描。
PK和FK仅仅是约束,不会增加存储空间。索引FK会增加存储空间,但索引的性能优势通常会超过存储的开销。
使用PK和索引的FK都是规范化数据设计的一部分,您不必担心使用它们。