mysql - 没有主键的连接表

标签 mysql sql innodb junction-table

假设我有一个连接表来解决两个表之间的多对多关系。我的连接表也有自己的“方法”列来描述关系。 Junction Table Example

通常,我会创建 [a]、[b] 和 [method] 的复合主键(该方法需要成为使行唯一的一部分),但我的问题是 [method] 字段可以是无效的。因此我无法将其添加到主键。

所以我所做的是创建一个唯一索引:

ALTER TABLE A_B ADD UNIQUE INDEX `Unique` (`a`, `b`, `method`);

该表没有主键。这是一件可以做的事情还是我需要做一些不同的事情?

最佳答案

使用主键并不是确保记录唯一性的唯一方法。您可以实现一个独特的约束来完成所需的任务。

http://www.w3schools.com/sql/sql_unique.asp

关于mysql - 没有主键的连接表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17175923/

相关文章:

MySQL - 查找用户是否参加了类(class),如果是,则生成了太多行

php - 通过 PHP 优化 MySQL InnoDB 插入

mysql - SQL结果在另一个查询中查询

sql - 在 SQL Server 中使用 XQuery 将 XML 转换为表数据

c# - 为什么 SqlClient 在传递 SqlXml 时使用不必要的 XML 转换?

sql - MySQL:优化大表中多行的更新

mysql - 上周发生了一些事情,但本周没有发生 mysql 查询

mysql - MySQL 中何时使用单引号、双引号和反引号

php - 在数据库中存储用户全名时有什么更好的做法? 1 列或 2 列?

mysqli_multi_query() 语句是并行执行还是一个接一个执行?