说我看起来像这样的数据库;通过添加索引列来优化SQL数据库
Product with columns [ProductName] [Price] [Misc] [Etc]
Order with columns [OrderID] [ProductName] [Quantity] [Misc] [Etc]
ProductName是Product的主键,一些字符串类型和唯一的。
OrderID是主键和某种整数类型,而ProductName是外键。
假设我将产品的主键更改为整数类型的新列,即[ProductID]
。
这会减少数据库大小并优化加入这两个表(以及类似的操作)的查找,还是这些优化是由(most/general/main)自动执行的SQL数据库实现?
从技术上讲,使用(字符串)产品名称为Product
主键,一个数据库应该能够在Order
实施ProductName列作为只是一个指向行中Product
,并执行JOIN
作为quicly作为一个有整数一个外键,这是一个实现SQL的标准方式。
更新: 这个问题是关于如何SQL服务器处理的外键,而不是产品是否表需要序列号,或者我如何处理与数据库中的产品名称更改。
+1用于指出改变产品名称的问题 – Donnie 2010-05-26 12:58:20