簡體   English   中英

適用於一對多或多對多的facebook風格帖子的mySQL表格設計

[英]mySQL table design for facebook style posts that suits one-to-many or many-to-many

我正在嘗試構建/設計一個表格,該表格將用於類似於谷歌+的帖子/評論系統,可以支持雙向一對多/多對多關系。 我現在擁有的是什么

member_id, 
post_id, 
post_body, 
post_date, 
post_flagged, 
post_shared, 
post_likes
  • member_id =我的會員ID
  • post_id =我的自動增量列,為每個帖子提供唯一的ID
  • post_body =實際帖子
  • post_flagged =我打算稍后建立的審核系統的一部分
  • post_shared =某種形式的分組ID(不確定這將如何工作,但認為谷歌+圈子)
  • post_likes =分組member_id誰喜歡這個帖子。

我有一個與上面幾乎相同的注釋表,除了它在上面列出的服務器之上有一個comment_id作為其自動判罪列。

我目前最終在這里尋求的是我想進行一次健全檢查。 上面的構造/模式看起來是否可行? 你會以任何方式添加/刪除/更改它嗎? 如果不是/或如果是。 任何人都可以建議做post_shared列的好方法嗎? 是否存在某種類型的對象或在該列中存儲數據的方式,這些對象或方式可用於Google+圈子的邏輯?

post_shared不應該在主帖子表中。

對於規范化的解決方案,您可能需要一個circles表,一個users表,一個posts表和一些關聯表來說明哪些是相關的 - 類似於

user_circles
post_circles

根據我的理解,你的post_shared專欄是這里真正有用的。 假設您有一個針對5個“圈子”的帖子(我們將從谷歌竊取這個詞)。 您如何在當前設置中指出?

在一個字段中執行此操作的唯一方法是{1, 2, 3, 4, 5} ,其中這些數字是圓圈ID。 這不是一個很好的做法。

我能看到完成此任務的最佳方法是使用此架構:

  • 帖子: post_id, post_body, post_flagged, post_likes
  • 圈子: circle_id, ...
  • PostCircles: post_id, circle_id

PostCircles表格將顯示哪些帖子對哪些圈子可見。 在上面的示例中,PostCircles表中有5行。 假設帖子ID是1:

post_id    |    circle_id
1               1
1               2
1               3
1               4
1               5

然后,您可以使用查詢語言顯示相應的帖子,具體取決於查看者所在的圈子(請注意,此答案中未顯示用戶架構)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM