首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >重复公司id与内部联合

重复公司id与内部联合
EN

Database Administration用户
提问于 2021-03-05 02:37:23
回答 1查看 108关注 0票数 0

你好,我正在为saas设计一个数据库。每个公司都会有大量的查询。我在两路之间犹豫不决。

第一种方法:复制的id,每个表都有一个用于公司id的FK,而select will包含一个简单的行位置。

第二种方法:使用内部连接,每个查询都会有一些内部连接,以获得用户的公司id。

  • 第一种方式对我来说更清晰,因为我们不再重复这种关系。
  • 第二种方式似乎更有表现力,因为连接较少。

请注意,有些表需要5或6个联接才能到达公司。

我正在寻找最好的选择,在安全性,清洁的设计,和良好的性能。

编辑:添加了一些例子,因为我没有那么清楚。

不多2多关系表简化

代码语言:javascript
运行
复制
Company <- Contract <- Folder <- Document <- Note
``

Each table point to its parent. If I want all company's documents, or all company's notes, I need to make multiple join if I do not duplicate de company id in all table I must make multiple joins to accomplish this select. 
EN

回答 1

Database Administration用户

回答已采纳

发布于 2021-03-05 04:16:49

规范化的一个原因是将表巧妙地解耦成多个相关列的表,以便在给定的时间只查询所需的列集,以最大限度地提高性能。如果CompanyId是大多数查询中的标准,那么从性能角度来看,将其保留在所有相关表中并不是个坏主意,这样您就不必将多个无关的表连接到查询中,从而获得Customer。但是从维护的角度来看,在多个表中插入相同的值也需要更多的工作。因此,这是一种基于系统表数的性能和可维护性之间的权衡。

票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/286468

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档