每个表都应该有一个主键吗?

编程入门 行业动态 更新时间:2024-10-24 14:22:51
本文介绍了每个表都应该有一个主键吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我正在创建一个数据库表,并且没有为其分配逻辑主键。所以,我正在考虑离开它没有主键,但我正在砍伐一点点内疚。我是不是该?

I'm creating a database table and I don't have a logical primary key assigned to it. So, I'm thinking about leaving it without a primary key, but I'm felling a bit guiltly about it. Should I?

每个表格是否都有主键?

编辑:好吧,好吧...我创建了主键!你现在高兴了? :)

Okay, okay... I've created the primary key! Are you happy now? :)

推荐答案

简短答案:是。

长的答案:

  • 您需要您的表格才能加入某些内容
  • 你希望你的表被聚集,你需要某种主键。
  • 如果你的表设计不需要一个主键,重新思考你的设计: 。为什么要保留相同的记录?

在MySQL中,如果没有明确指定,InnoDB存储引擎总是创建主键,

In MySQL, the InnoDB storage engine always creates a primary key if you didn't specify it explicitly, thus making an extra column you don't have access to.

请注意,主键可以是复合的。

Note that a primary key can be composite.

>如果有多对多链接表,则在链接中涉及的所有字段上创建主键。因此,您确保您没有两个或更多记录描述一个链接。

If you have a many-to-many link table, you create the primary key on all fields involved in the link. Thus you ensure that you don't have two or more records describing one link.

除了逻辑一致性问题,大多数RDBMS引擎将受益于将这些字段包含在唯一

Besides the logical consistency issues, most RDBMS engines will benefit from including these fields in a unique index.

由于任何主键涉及创建唯一索引,因此您应该声明它并获得逻辑一致性和性能。

And since any primary key involves creating a unique index, you should declare it and get both logical consistency and performance.

请参阅我的博客中的文章,了解为什么应该始终为唯一数据创建唯一索引:

See this article in my blog for why you should always create a unique index on unique data:

  • 制作索引UNIQUE

PS 有一些非常非常的特殊情况,

P.S. There are some very, very special cases where you don't need a primary key.

大多数情况下,它们包括日志表,它们由于性能原因没有任何索引。

Mostly they include log tables which don't have any indexes for performance reasons.

更多推荐

每个表都应该有一个主键吗?

本文发布于:2023-11-16 06:25:41,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1601801.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:有一个   主键

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!