2011-05-08 24 views
0

我正在创建一个新的数据库,并且正在考虑结构。之前我一直使用auto-incremented undefined small-INT。在一些表格上将会进行大量的搜索,并且根据上述构造的key以前很少会被知道,因此搜索将在非关键列上进行。来自多个其他列值的表键的结构

在一些表中还有其他独特的值,我们没有问题只是把它作为关键,但在有些没有,因此我想我可以构建密钥作为两个放在一起或更多的列值,以便创建一个唯一的字符串,我以后可以搜索并确保更好的性能。

我还没有听说过这个key-construction,所以我想得到一些关于如果我在这里正确思考的输入。谢谢!

下面是将说明这种“放在一起” - 键的例子:

mysql> CREATE TABLE example (
    key VARCHAR(100), 
    name VARCHAR(50), 
    category VARCHAR(20), 
    country VARCHAR(30) 
    ); 

name不是唯一的本身,而是为每categorycountry(其在输入确保)是唯一的。搜索将有90%的时间涉及这三个参数,因此执行搜索的代码可以将key放在一起并搜索表ID /密钥。在10%的情况下,如果其中一个参数未知,则可以直接搜索country上的其他列示例,如果用户想要查看具有country=xyz的所有行,请直接进行搜索。

+0

什么你问被称为“复合” – 2011-05-08 06:51:18

+0

你可以有不唯一列的索引。 – piotrm 2011-05-08 07:21:22

回答

相关问题