首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使表规范化,其中列引用同一表中不同列的多行

如何使表规范化,其中列引用同一表中不同列的多行
EN

Stack Overflow用户
提问于 2019-06-06 10:36:46
回答 2查看 67关注 0票数 0

我正在尝试创建一个表,列出不同的应用程序,如果它们与列表中的其他应用程序集成。

代码语言:javascript
复制
ID  SKU     NAME            Integrations
1   pdk1    hubspot crm pdk3,pdk4,pdk5
2   pdk2    sugar crm   pdk5
3   pdk3    pipedrive   pdk1
4   pdk4    quickbooks  pdk1
5   pdk5    mailchimp   pdk1,pdk2

如何规范集成列?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-06-06 14:11:34

在你的例子中,SKU之间的关系是“多对多”(M:M)。在列中存储多个逗号分隔的值违反了第一个范式(1NF)。因此,您需要使用额外的链接表来规范表和模型M:M关系。

SKU表

代码语言:javascript
复制
SKU
---
ID  SKU     NAME        
1   pdk1    hubspot crm 
2   pdk2    sugar crm   
3   pdk3    pipedrive   
4   pdk4    quickbooks  
5   pdk5    mailchimp   

链接表

代码语言:javascript
复制
SKU_INTEGRATION
---------------
ID  INTEGRATED_WITH_ID
1   3
1   4
1   5
2   5
3   1
4   1
5   1
5   2

您可以看一看"用数据库编程“一书,这本书涵盖了规范化、不同类型链接的建模等主题。

票数 1
EN

Stack Overflow用户

发布于 2019-06-06 10:39:58

这是你想要的吗?

代码语言:javascript
复制
select id, sku, name,
       regexp_split_to_table(integrations) as integration
from t;

这并不完全是“规范化”的,但它删除了使用分隔字符串来表示多个值。

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

https://stackoverflow.com/questions/56475847

复制
相关文章

相似问题

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