我正在尝试在某些设计文件上勾画出一个数据库模板,而我遇到了依赖项问题。
用户向网站提交内容以供查看,内容根据内容的类型给予优先级。但是,我也希望优先级由用户设置。基本上,如果人A是人B的朋友,则人A提交的内容对于人B是高优先级的。人C不是人A的朋友,因此该媒体中人C的内容是低优先级。
我甚至不知道从哪里开始。任何正确方向的推动都将受到赞赏。我认为这是一个MySQL问题;但是,我使用PHP作为服务器端脚本语言,我想知道数学是否使得它没有通过MySQL的解决方案。
我正在考虑只为朋友内容使用一个区域,而不是当前没有弄乱优先级。
答案 0 :(得分: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和表设计独立于RDBMS和Web技术。