我创建了一个数据库,几乎所有表都有一个我在scenerio中创建的主键。这是允许的还是我必须从数据中找到主键。
例如: 我有数据:销售助理ID,分支ID - 我创建了一个主键“SalesId”。
答案 0 :(得分:0)
创建自己的PK是一个好主意;请记住,对于包括MyISAM和InnoDB在内的大多数常见MySQL引擎,您的PK也将成为您的聚集索引(每个表只能有1个;对索引类型进行一些研究以了解为什么聚簇索引是一个大问题) 。根据对表的读取/插入/更新操作的频率,这会对性能产生重大影响。
我几乎总是有一个名为ID
的自动增量INT列,我制作了我的PK;无论表存储什么,它与原始数据无关。它只不过是数字类型的唯一标识符,它结合起来使搜索/加入速度非常快。
有找到更多有益PK的论据,但要开始,创建自己的PK是完全正常的,并且很常见。