我正在吃晚饭 users
表格:
CREATE TABLE `users` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `users_name_unique` (`name`)
) ;
然后 user_roles
定义如下的表:
if (!Schema::hasTable('user_roles')) {
Schema::create('user_roles', function (Blueprint $table) {
$table->increments('id');
$table->string('role');
$table->timestamps();
$table->softDeletes();
});
}
并存储值,例如 actor
, director
等
和一个 user_record
数据透视表:
if (!Schema::hasTable('user_record')) {
Schema::create('user_record', function (Blueprint $table) {
$table->integer('record_id')->unsigned();
$table->integer('user_id')->unsigned();
$table->integer('user_role_id')->unsigned();
$table->string('character_name');
$table->integer('ranking');
});
}
所以,一个 Record
有很多 User
其中有很多 User_Role
为了这个 Record
.
中的所有ID user_record
是各个字段的外键。
这是所谓的草率关系吗?如果是的话 user_roles()
在 User
模特长什么样?
public function user_roles()
{
return $this->belongsToMany(UserRole::class, 'record_user', 'user_id', 'record_id');
}
1条答案
按热度按时间uidvcgyl1#
不,你有一个典型的
Many To Many
关系,其中包含两个表和包含id
两者都是。这种关系应该包含两者
id
而是像: