作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我有一个名为USER的实体,并且两个USER之间存在一个友谊FRIENDSHIP
因此,我有一个表“USER”和一个关系表“FRIENDSHIP”
用户
id firstName姓氏
1 taher chhabrawala
2约翰·杜萨(John Dsouza)
3拉胡尔·辛格
迪帕克4号公寓式酒店
友谊
编号编号
1 2
1 3
1 4
4 1
4 3
在上表中,我两次存储相同的信息,即“taher是Deepak的 friend ,而Deepak是Taher的 friend ”
有什么办法可以减少这种冗余?
最佳答案
好吧,您当然可以假设所有友谊都是对称的,并且只存储一次该友谊,但这意味着当您要查询Taher的所有 friend 时,必须在任一列中查找其ID。
或者,您可以有一个单独的关系ID表,然后有一个与用户的一对多关系表。这样做的好处是,如果有一天愿意的话,它将允许多人关系,并允许您添加有关该关系的元数据(关系开始时,谁提出的时候等等)。
User
Id Name
1 Taher
2 Deepak
Relationship
Id StartDate
1 2010-08-23
UserRelationship
RelationshipId UserId
1 1
1 2
关于database-design - 如何表示对称的多对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3550093/
概述 CentOS Stream 成立于 2019 年,是“RHEL 下一步的滚动预览”。Red Hat 首席技术官 Chris Wright 和 CentOS 社区经理 Rich Bowen 各
我有一个使用 Mesosphere DC/OS 编排选项进行配置的 Azure 容器服务 (ACS) 集群。我可以在 Marathon UI 中创建一个应用程序。 但是,当我通过 Marathon U
我是一名优秀的程序员,十分优秀!