通常,我们可以使用唯一键或主键来防止这种情况,但在我的情况下。我正在创建一个像这样的MyFavorite表:
--------------------------------------------------------- | UserName | FavoriteLink | --------------------------------------------------------- | Ryan | http://www.google.com | --------------------------------------------------------- | Ryan | http://www.yahoo.com | --------------------------------------------------------- | Joyce | http://www.google.com | --------------------------------------------------------- | Joyce | http://www.cnn.com | ---------------------------------------------------------
因此,每个用户都可以拥有很多偏好链接,但是他们不应该有重复的偏好链接,例如,Ryan不应该为http://www.google.com设置两个偏好链接。但是对于这个表格,FavoriteLink字段可能是重复的,因为Ryan和Joyce都是http://www.google.com的偏好链接。
这是一个问题:如何在没有特定人员的重复收藏夹的情况下将数据插入此表?
答案 0 :(得分:4)
复合键。
CREATE TABLE userlinks (
user VARCHAR(255),
link VARCHAR(255),
PRIMARY KEY (user, link)
)
或
CREATE TABLE userlinks (
id INTEGER AUTO_INCREMENT PRIMARY KEY,
user VARCHAR(255),
link VARCHAR(255),
UNIQUE KEY (user, link)
)
取决于你想要的确切内容。
答案 1 :(得分:3)
您可以添加复合唯一索引。
CREATE UNIQUE INDEX username_favorite_uniq ON yourTable (UserName, FavoriteLink)