2011-10-22 23 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。这对加权优先权很有意思。谢谢。 –