1

我知道这个问题已经被问过一百万次了,但我似乎找不到一个真正让我很好地理解 Kohana 的 ORM 模块中的关系如何工作的问题。

我有一个包含 5 个表的数据库:

approved_submissions
   -submission_id
   -contents

favorites
   -user_id
   -submission_id

ratings
   -user_id
   -submission_id
   -rating

users
   -user_id

votes
   -user_id
   -submission_id
   -vote

现在, favorites, ratings, 并且votes有一个主键,它由表中的每一列组成,以防止用户多次喜欢submission_id同一个,用户多次投票submission_id等。我也相信这些字段是使用设置的引用的外键,approved_submissionsusers防止在各个字段中存在无效数据。

使用 DB 模块,我可以毫无问题地访问和更新这些表。我真的觉得 ORM 可能会提供一种更强大、更易于使用的方法来使用更少的代码来完成相同的事情。

你能演示我如何更新用户投票submission_id吗?用户删除收藏夹submission_id?用户更改他们对特定的评价submission_id

另外,我需要对我的数据库结构进行更改还是可以这样?

4

1 回答 1

1

您可能正在寻找has_many_through关系。

所以要添加一个新的提交,你会做类似的事情

 $user->add('submissions', $submission);

并删除

 $user->remove('submissions', $submission);

您可能需要考虑重组您的数据库表和键名,这样您最终就不会进行大量配置。

于 2011-03-29T02:38:40.187 回答