相关疑难解决方法(0)

索引和多列主键

没有找到这个特定的菜鸟问题的答案.如果我错过了,我道歉.

在MySQL数据库中,我有一个包含以下主键的表

PRIMARY KEY id(发票,项目)

在我的应用程序中,我还经常选择"项目"本身,而不是经常选择"发票".我假设我会从这些列的索引中受益.

当我定义以下内容时,MySQL不会抱怨:

INDEX(发票),INDEX(项目),PRIMARY KEY id(发票,项目)

但我没有看到任何证据(使用DESCRIBE - 我知道如何查看的唯一方法)已经为这两列建立了单独的索引.

所以问题是,构成主键的列是否会自动单独索引?另外,有没有比DESCRIBE更好的方法来探索我的桌子的结构?

mysql sql indexing primary-key

31
推荐指数
4
解决办法
2万
查看次数

复合主键

我正在设计一个数据库,用于存储源自许多不同来源的数据.我存储的实例由原始源分配唯一ID.我存储的每个实例都应包含有关其来源的信息,以及该源关联的ID.

例如,请考虑下表说明问题:

----------------------------------------------------------------
| source_id | id_on_source | data                              |
----------------------------------------------------------------
| 1         | 17600        | ...                               |
| 1         | 17601        | ...                               |
| 2         | 1            | ...                               |
| 3         | 1            | ...                               |
----------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

请注意,虽然id_on_source每个源都是唯一的,但可以id_on_source为不同的源找到相同的源.

我对关系数据库有一个很好的理解,但远非专家甚至是有经验的用户.我在设计中遇到的问题是我应该用作主键的问题.数据似乎决定使用复合主键(source_id, id_on_source).经过一番谷歌搜索后,我发现了一些关于复合主键优缺点的激烈争论,让我有点困惑.

该表与其他表具有一对多的关系,因此将在其他表的外键中引用.

我不依赖于特定的RDBMS,我不知道这是否事项的参数的缘故,但让我们说,我更喜欢的工作SQLiteMySQL.

在这种情况下使用复合外键有哪些优缺点?你更喜欢哪个?

sql database composite primary-key

20
推荐指数
4
解决办法
1万
查看次数

标签 统计

primary-key ×2

sql ×2

composite ×1

database ×1

indexing ×1

mysql ×1