应用程序的DB Schema

时间:2017-08-20 06:29:54

标签: mysql database database-design database-schema

我是一个应用程序,我需要在博客段落上发表评论,而不是评论博客。段落由两个换行符分隔。

我将使用post.split('\n\n')拆分收到的帖子,将帖子和段落保存在单独的表格中BlogParagraphs)。现在,每当收到新评论时,我都会将其保存在Comments表中并收到para_id。

以下是我计划构建的数据库架构。

博客

-id
-title
-date

段落

-id
-para
-sequence_no
-blog_id(FK)

评论

-id
-comment
-para_id(FK)
-date

上述设计存在一些缺陷。考虑更新帖子的示例,即在两个段落之间插入新段落,或者完全删除段落。这将导致序列失真(序数)。我该如何处理这样的用例?

1 个答案:

答案 0 :(得分:0)

计算每个段落的唯一哈希值,并使用PostID + ParagraphHash的组合作为主键。

将时间戳与每个段落一起存储。每次用户编辑帖子时,都会更新现有段落的时间戳。很容易发现删除的段落。