我正在尝试为我当前的项目设计数据模型,但我遇到了麻烦。产品所有者希望拥有用户,搜索,文档和标签。这是迄今为止似乎众所周知的事情:
我在这里试图管理两个问题:
可能让我理解的一件事是我正在考虑使用Ruby on Rails ActiveRecord ORM。我最终将不得不实现我在Rails中找到的任何解决方案。
答案 0 :(得分:2)
一种可能的设计:
User
1| \1
| \
\ N\
\ Search Document
\ \1 1/ /1
\ \ / /
\ N\ /M /
\ Search-Returns-Document /
\ /
\ /
\N M/
User--Views--Document Tag
1\ 1/
\ /
\N /M
User-Marks-Document-With-Tag
答案 1 :(得分:0)
希望这会有所帮助:
有一个包含user_id,document_id等的Documents_Viewed表。然后在检索搜索结果时,将用户和文档上的已查看表加入,这将告诉您是否已阅读它。
我会有另一个包含user_id,document_id,tag的表Document_Tags,因为你提到的标签是用户相关的
示例理论查询将是:
SELECT * FROM Docuemnts d
LEFT JOIN Document_Viewed dv ON (dv.document_id = d.id AND dv.user_id= ?)
LEFT JOIN Document_Tags dt ON (dv.document_id = d.id AND dv.user_id= ?)
WHERE (search_criteria)
不确定这对你有帮助吗