gpt4 book ai didi

mysql - Github 喜欢数据模式?

转载 作者:IT王子 更新时间:2023-10-29 06:16:01 28 4
gpt4 key购买 nike

我正在学习并尝试制作网站,但我对数据模型有点困惑。我的站点类似于 github,因为您可以关注人们并复制/共享内容(类似于 fork /拉取请求)。我如何制作数据模型来存储它?

基本上,我写了一篇文章,这篇文章与我相关联。那你来‘fork’我的文章,我复制一份吗?或者它只是一个链接?然后在编辑您的版本后,您向我发送了将我们的内容合并在一起的请求(我不想覆盖数据,但不确定如何以捕获差异的方式进行)。对我来说最糟糕的是,我想对编辑进行版本控制,这让我在对 fork 数据进行版本控制时变得复杂。

我不知道从哪里开始..我不需要答案,但任何关于如何为这个 fork /合并交互建模的建议都会很棒。我还没有决定是使用 redis 还是 mysql,但是如果我可以将逻辑应用于其中一个,那么一般的答案是可以的。

最佳答案

创建 2 个模型:Article 和 ArticleRevision。用户有很多文章与他(文章的所有者)关联,并且文章有很多修订:

  • 文章 (id, user_id, current_revision_id, created_at) 有很多 ArticleRevisions
  • ArticleRevision(id, article_id, title, body, created_at, parent_revision_id)属于Article,属于ArticleRevision,有很多ArticleRevisions

文章的当前版本由 current_revision_id 字段确定。修订有一个父修订 - 这是它的起源修订。

当有人 fork 一篇文章时:

  • 克隆文章
  • 克隆文章的最新修订版,并可选择重置新创建修订版的父级(因此历史记录将为空)。
  • 设置新创建文章的所有者和当前版本

关于mysql - Github 喜欢数据模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11090024/

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