我正在创建一个新的数据库,并在思考结构。之前我一直使用auto-incremented undefined small-INT
。在某些表格上会进行大量搜索,根据上述内容构建的key
之前很少被人知道,因此搜索将在非键列上。
在某些表中还有其他独特的值,我们没有问题只是将它作为键,但在某些表中没有,因此我认为我可以将键构建为两个或两个的组合或更多列值,以便创建一个我以后可以搜索并确保更好性能的唯一字符串。
我之前没有听说过这个关键结构,所以我想得到一些关于我是否正确思考的意见。谢谢!
这是一个例子,将说明这个“放在一起”-key:
mysql> CREATE TABLE example (
key VARCHAR(100),
name VARCHAR(50),
category VARCHAR(20),
country VARCHAR(30)
);
name
本身并不是唯一的,但每category
和country
都是唯一的(在输入时可以确保)。搜索将在90%的时间内涉及这三个参数,因此进行搜索的代码可以将key
放在一起并搜索表id /密钥。在其中一个参数未知的10%的情况下,如果用户想要查看country
的所有行,则可以直接在country=xyz
上搜索其他列示例。
答案 0 :(得分:0)
是的,使用两列或更多列作为唯一标识符是完全合法的,它被称为复合键。
http://weblogs.sqlteam.com/jeffs/archive/2007/08/23/composite_primary_keys.aspx