gpt4 book ai didi

mysql - 数据库多对多中间表 : extra fields

转载 作者:搜寻专家 更新时间:2023-10-30 22:03:55 24 4
gpt4 key购买 nike

我创建了一个“商店”和一个“客户”表以及一个中间表 customers_shops。每个商店都有一个 site_url 网址,除了一些客户使用替代 url 访问商店的网站(此 url 对特定客户而言是唯一的)。

在下面的中间表中,我添加了一个附加字段 shop_site_url。我的理解是这是第二种规范化形式,因为shop_site_url 字段对于特定客户和商店是唯一的(因此不会为不同的客户/商店重复) .此外,由于它取决于客户和商店,我认为这是第三规范化形式。我只是不习惯使用“映射”表 (customers_shops) 来包含其他字段 - 下面的设计是否有意义,或者我应该保留中间表纯粹作为转换从多对多关系到一对一?

######
customers
######

id INT(11) NOT NULL PRIMARY KEY
name VARCHAR(80) NOT NULL

######
shops
######

id INT(11) NOT NULL PRIMARY KEY
site_url TEXT

######
customers_shops
######

id INT(11) NOT NULL PRIMARY KEY
customer_id INT(11) NOT NULL
shop_id INT(11) NOT NULL
shop_site_url TEXT //added for a specific url for customer

谢谢

最佳答案

您所说的“中间”表并不是一种特殊类型的表。只有一种表格,相同的设计原则应该适用于所有表格。

关于mysql - 数据库多对多中间表 : extra fields,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5004087/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com