我被困在SQL查詢中。這是關於獲取帖子以顯示用戶,這是由與他連接的人共享的。Sql查詢獲取用戶的帖子
我有一個表格,顯示兩個用戶之間的連接。兩個用戶之間可以有5種類型的連接:
- 朋友;
- 親戚;
- 同事;
- 同學;
- 熟人。
任何兩個用戶可以在一個以上的關係被連接,使得該表具有7列,它們是:現在
first_user_id (int)
second_user_id (int)
friends (bool)
relative (bool)
colleague (bool)
classmate (bool)
acquaintance (bool)
,用戶可以共享一個柱,它可以是一個想法,一個照片,視頻或任何其他內容,但現在,讓我們考慮他可以分享一個想法。他可以在他的帖子上設置隱私,他可以指定只有他的親屬或朋友才能訪問帖子。爲此,我有三張桌子。
Shared
- 所有的共享項目:id (int auto_incr p_key)
;type (text)
- 在此行的帖子的類型,例如,它可以是'thought'
或'photo'
或'video'
。現在,它將是'thought'
;item_id (int)
-id
要在相應的表中尋找的項目,現在,它是thought
表;shared_by (int)
-id
誰分享這個項目time (datetime)
用戶 - 當思想被張貼
Thought
日期/時間 - 這是用於存儲所有的思想項目表,將存在用於存儲每種類型的物品的單獨的表格,例如,photo
,video
等。:id (int auto_incr p_key)
content (text)
- 思想
Shared_with
的內容: - 在id
值post_id (int p_key)
的shared
表將插入此public (bool)
- 如果該值爲true,這是一條公開信息,並能與大家friends (bool)
共享 - 如果爲true,這個職位可以與人分享誰與誰張貼relative (bool)
的一個朋友 - 同上親戚colleague (bool)
- 同爲同事classmates(bool)
- 同爲同學acquaintance (bool)
- 同爲熟人
現在的問題是,我想取前20名的帖子這是公開的或共享連接到用戶的人。用戶只能看到他有權訪問的帖子,以及哪些帖子來自他的聯繫人列表。你能告訴我怎麼用單個或多個Sql查詢來完成它。也建議在模式中進行一些改進。
這聽起來更像是「請執行我的設計」,而不是「請幫助我,我有這個技術問題」。這個論壇更多的是關於後一種請求。我建議發佈迄今爲止已嘗試過的內容,我們可以幫助您解決更具體的問題。 – Milimetric 2012-01-06 21:38:41
你使用的是什麼db – 2012-01-06 22:34:49
我正在使用MySql – Sourabh 2012-01-07 09:34:47