【发布时间】:2011-06-27 14:34:12
【问题描述】:
我创建了一个“shops”和一个“customers”表以及一个中间表customers_shops。每个商店都有一个site_url 网址,除了一些客户使用备用网址来访问商店的网站(此网址对特定客户来说是唯一的)。
在下面的中间表中,我添加了一个附加字段shop_site_url。我的理解是这是第二规范化形式,因为the shop_site_url 字段对于特定客户和商店是唯一的(因此不会为不同的客户/商店重复)。此外,由于它取决于客户和商店,我认为这是第 3 种标准化形式。我只是不习惯使用“映射”表 (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 database database-design normalization join