MySQL - 为每条记录提供唯一键,而不是主键

标签 mysql primary-key key uniqueidentifier identification

好吧,这是一个很难解释的问题。

我正在创建一个包含 PAGES 的应用程序,目前我使用 PageID 作为 SEL 记录的 key 。

我现在遇到的问题是,我希望用户能够编辑页面,但不会丢失上一页(出于历史记录、记录保留原因,例如更改日志或 wiki 页面历史记录)。

这让我觉得我需要在 PAGE 表中添加一个新字段来充当 pageID,但它不是每次添加行时都会自动递增的主键。

Google 文档有一个 DOCID:/Doc?docid=0Af_mFtumB56WZGM4d3Y3d2JfMTNjcDlkemRjeg

这样我就可以拥有具有相同文档 ID 的多条记录,并根据 dataAdded 字段显示历史更改日志。当用户想要查看该 DOCID 时,我只需提取最新的 DOCID 即可。

想法?我很欣赏你的聪明才智,为我指明了正确的方向!

最佳答案

你走在正确的道路上。您需要的是历史记录或修订 ID 以及文档 ID。历史记录 ID 将是主键,但您还可以在文档 ID 上有一个键以用于查询目的。

通过历史记录跟踪,您可以为应用程序增加一点复杂性。您必须小心,文档的主视图显示当前历史修订(即给定文档 ID 的最大历史 ID)。

此外,如果您要存储大型文档,则每次编辑本质上都会将文档的另一个副本添加到数据库中,并且表将很快变得非常大。您可能需要考虑实现某种“差异”存储,仅存储对文档的更改而不是完整的内容,或者将历史编辑保存在单独的表中以仅用于历史搜索。

关于MySQL - 为每条记录提供唯一键,而不是主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1982115/

相关文章:

使用 POW() 时 MySQL 命令不同步

MySQL:键 'PRIMARY' 的重复条目

sql - 将标识列添加到 Snowflake 中的现有表?

Powershell 哈希表计数和键属性重载

python - 在python dict中获取对应于max(value)的Key(s)

javascript - 使用 jquery 获取没有键的 json 值

MySQL - 索引 - 我做错了什么?

php - 我可以在 PHP 中混合使用 MySQL API 吗?

mysql - 使用左连接语法 SQL

python - 当主键为 true 时,SQLAlchemy 无法捕获非空约束