2011-10-22 21 views
0

我試圖勾畫出一些設計論文中的數據庫模板,並且遇到依賴性問題。什麼是'其他表,列依賴,動態表狀態'?

用戶向網站提交內容以供查看,並根據內容的類型給予內容優先級。然而,我也希望優先級由用戶設定。基本上,如果人A是人B的朋友,則人A提交的內容對於人B而言是高優先級。人C不是人A的朋友,因此對於該人中的人C而言內容是低優先級的。

我甚至不知道從哪裏開始。任何推動正確的方向將不勝感激。我認爲這是一個MySQL問題;但是,我使用PHP作爲服務器端腳本語言,並且我想知道數學是否使得通過MySQL沒有解決方案。

我正在考慮只使用一個地區的朋友內容,而不是搞亂優先事項,目前。

回答

1

只要你跟蹤你所需要的東西不應該是問題,訣竅將在寫作Sql。例如,如果你有以下的表結構

person 
------ 
id 
name 
otherstuff 

person_releationship 
------------------- 
person_a_id 
person_b_id 
relationship_type_id 

relationship_type 
------------------------- 
id 
content_priority 

content 
-------------- 
id 
stuff 
person_id 
user_priority 

你可以寫下面的語句這將檢索與人相關聯的所有內容,但不包括他們自己的內容,通過content_priority

SELECT 
    stuff 
FROM 
    content c 
    INNER JOIN person p 
    ON c.person_id = p.id 
    INNER JOIN person_releationship pr 
    ON p.person_id = pr.person_a_id 
     or p.person_id = pr.person_b_id 
    INNER JOIN relationship_type rt 
    ON pr.relationship_type_id = rt.id 
WHERE 
    p.id = "A" 
    and c.person_id <> "A" 
ORDER BY 
    rt.content_priority, 
    c.user_priority 

如果優先希望你也可以使用加權優先所以ORDER BY可能是

ORDER BY 
rt.content_priority * c.user_priority 

你應該注意到,這個SQL和表的設計是自主創新結關係數據庫管理系統和網絡技術。

+0

因此,如果內容具有被用戶關係覆蓋的默認優先級,是否需要選擇哪一個更重要,還是應該通過公式將列互相混合: content --- ----------- ID 東西 person_id content_priority –

+1

那麼這取決於你。你希望非朋友的最高優先級總是低於朋友的最低優先級嗎? –

+0

我不確定什麼是RDSM。這對加權優先權很有意思。謝謝。 –