牺牲数据库大小以获得性能,反之亦然?

时间:2012-07-12 17:15:59

标签: sql database-design coding-style

假设我正在为在线商店建立一个网站并拥有一个产品数据库。所有这些产品都有自己的页面,并有各自的URL。

如果URL总是可以从数据库中的其他数据派生(让我们假装每个产品都可以在http://example.com/ [PRODUCT.CATEGORY]找到?prod = [SHA1(PRODUCT.NAME)]) ,将URL存储在表的另一个字段中是否明智?

一方面,它是重复数据(可以很容易地从表中的其他现有字段派生)。另一方面,这些URL在任何地方都可以使用,而且每次需要时都会重新导出这些URL。

这种情况是否有最佳做法?

1 个答案:

答案 0 :(得分:0)

您不应在数据库中存储任何网址。

您应该根据您要查找的数据在运行时创建网址。

显示产品的页面可以忽略它所需的任何字段。

您还应该使用ID字段而不是product.name。除非您试图向用户隐藏某些产品,否则没有理由将密钥丢弃。

请记住,使用主键查找记录是获取该记录的最快方法。