[英]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
我有一個與上面幾乎相同的注釋表,除了它在上面列出的服務器之上有一個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, ...
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.