是否有用于减少重复连接表数据的数据库设计模式名称?

Der*_*mes 3 sql database-design design-patterns

我有两个带有联接表的表,以允许多对多关系。

在此处输入图片说明

这是一个非常熟悉的设计模式。它指示每个成员有权访问的分支。

随着成员和分支数量的增加,我最终在联接表中获得了很多在成员之间重复的数据。成员往往具有与其他成员相同的分支机构组访问权限。

因此,我正在通过创建有效不变的MemberProfile表来规范化我的数据。而且,与其为我检查匹配的MemberProfile的每个会员创建MemberBranch记录,不使用它是否已经存在,否则创建一个(如果不存在):

我的想法是,如果我有100万个会员,但只有100个访问配置文件,这将为我节省很多数据库空间。

在此处输入图片说明

我很高兴这一切都能奏效,而且值得付出开发工作。

我的问题是“这是标准的数据库设计模式吗?如果是的话,它叫什么名字?”

编辑:有人指出,这是在压缩数据而不是对其进行规范化。这是设计背后的意图。

phi*_*pxy 5

除非您的many:many表始终是特定其他基本表的联接,否则不会进行标准化。您在这里没有规范化。规范化不会引入新的列名。它只是在不同的基表中重新排列当前表。

您只是压缩/编码数据。这样做并不一定带来任何好处,因为尽管数据库较小,但现在某些查询和更新将变慢。(您已经报告说值得这样做)。