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

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

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

表博客

-id
-title
-date


表格段落

-id
-para
-sequence_no
-blog_id(FK)


表注释

-id
-comment
-para_id(FK)
-date


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

最佳答案

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

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

关于mysql - 应用程序的数据库架构,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45779147/

10-09 14:24