【发布时间】:2011-12-19 18:30:40
【问题描述】:
一个问题:
我有 2 张桌子:
Product
id INT
name VARCHAR(64)
something TEXT
else INT
entirely BOOL
和
Ingredient
id INT
name VARCHAR(64)
description TEXT
现在我也有一个链接表
Products_Ingredients
product_id INT
ingredient_id INT
对于我的多对多关系。
现在产品和成分都将拥有唯一的名称。所以我可以使用名称作为自然键......但这会是个好主意吗?
假设我有一个产品:Paint Thinner Supreme
配成分:Butylonitrotetrocycline
将这些名称用作链接表中的复合键是个好主意吗?
尽管我了解在代理项上使用自然键背后的想法,但我还是忍不住想,使用简单整数作为主键(和外键)会快得多。 MySQL 服务器消化这些不同密钥的方式会有所不同吗?
你的意见是什么?
【问题讨论】:
标签: mysql database database-design foreign-keys relational-database