【发布时间】:2014-06-13 16:59:07
【问题描述】:
我不熟悉一起定义关系和框架,我只是习惯于原始 SQL。我做了功课(google + Laravel 文档),但我认为我没有正确理解它。
以下是相关信息: 用户表:
Table: Users
id - int (auto increment)
username - varchar
挑战表:
Table: Challenges
id - int (auto increment)
name - varchar
用户挑战链接
Table User_challenge_links
id - int (auto increment)
user_id - int
challenge_sub_categories_id - int
Challenge_sub_categories
Table Challenge_sub_categories
id - int (auto increment)
category_id -
sub_category_id -
challenge_id -
所以我的目标.. 用户->挑战。
class User extends Eloquent
{
protected $table = "users";
public function challenges() {
// get user-> challenges
}
}
关系:
- 一个用户有很多 User_challenge_links
- User_challenge_link 有一个 challenge_sub_categories_id(因此是一个 challenge_sub_category)
- challenge_sub_categories 中的 challenge_id 匹配挑战表中的挑战
任何帮助,甚至为我指出正确的方向都将不胜感激!
编辑: 示例数据: 用户数据
Users
id name
1 "Sjaak"
2 "Henk"
类别数据 身份证名称 1“福” 2“酒吧”
子类别数据 身份证名称 1“亚富” 2“子栏”
挑战数据 身份证名称 1 “摇摆 dat Foo” 2“禁止一切” 3“Foo酒吧”
Challenge_sub_categories 数据
id category_id sub_category_id challenge_id
1 1 1 1
2 2 1 1
3 1 2 2
4 2 1 3
5 2 2 2
用户挑战链接数据
id user_id Challenge_sub_categories_id
1 1 1
2 1 3
3 2 2
4 2 3
5 2 4
数据流:
用户可以创建类别或使用现有类别并将挑战链接到它们(现有的或新的)。但是,用户也可以选择使用子类别,然后将其链接到一个类别并将挑战链接到该类别。
因此,类别是强制性的,但 sub_category 不是。但是,如果使用子类别(再次......现有或新的),挑战将连接到该子类别。
注意:一个子类别可以连接多个类别
category - House
sub_category - Cleaning
Challenge - getting special soap
category - Car
sub_category - Cleaning
Challenge - getting special soap
category - Showering
Challenge - getting special soap
这些是一些可能的情况
【问题讨论】:
-
user与表架构中的challenge有什么关系?你有user_id和challenge_sub_categories_id这是不正确的,对吧? -
我们是否缺少类别表?
-
这个 Challenge_sub_categories 是打算成为挑战的子类型......还是挑战属于一个类别并且该类别可能有一个父类别?
-
一个挑战总是链接到一个类别和一个可选的子类别,但是一个挑战可以链接到许多类别和子类别,因此之间的链接表,我们需要知道那个挑战的特定实例用户拥有。类别和子类别表主要由
- int (auto increment) - varchar - varchar 组成 你所说的挑战实例是什么意思?
标签: php mysql database laravel relationship