gpt4 book ai didi

mysql - mysql数据库主键选择以实现快速更新

转载 作者:行者123 更新时间:2023-11-30 00:54:00 25 4
gpt4 key购买 nike

我需要创建一个表来存储来自不同客户端的“事件”,每个事件都有一个event_id。 event_id 对于特定客户端来说是唯一的,这意味着 event_id(integer) 和 client(varchar) 的组合可以作为主键。我打算使用该表作为我使用 hibernate 的 Java 应用程序的数据提供程序。用例将是添加事件、更新事件以及处理事件以生成报告。

我想确保快速准确的更新,这需要获取确切的行并在 hibernate 中更新它。

请建议主键应该是什么:

  1. 使用 event_id 和客户端列创建 Primary_key
  2. 使用 auto_increment 创建额外的 id 列,并使用 event_id 和 client 创建唯一索引

我很困惑是否要创建一个带有 auto_increment 列的 id

最佳答案

基于 JB Nizet 的评论

更喜欢非功能性、单列、纯技术性、自动生成的主键。因为应用程序的其余部分将能够通过单个数字 ID 而不是通过两个信息的组合(其中之一是文本信息)来引用客户端事件。因为如果您稍后向事件的功能键添加第三个信息,或者更改文本客户端 ID 的值,则无需更改所有具有客户端事件表外键的表。由于通过单列访问事件,因此数字 PK 比通过复合文本访问事件要快。因为Hibernate映射以及使用它的代码会更容易编写等等。

关于mysql - mysql数据库主键选择以实现快速更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20739116/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com