Я практикую использование Mongo DB для Laravel проекта.
В моих отношениях ко многим в MySql и Laravel Я использовал для создания третьей миграции.
Senario
Я строю общие Role
и User
отношения. Я делаю user model
, user migration
, role model
, role migration
, а также строю migration
со ссылкой на user model
и role model
.
Миграция role_user
выглядит следующим образомthis:
Schema::create('role_user', function (Blueprint $table) {
$table->bigIncrements('id');
$table->usnignedBigInteger('role_id');
$table->usnignedBigInteger('user_id');
$table->timestamps();
});
Примечание. Я создаю базу имен схем в алфавитном порядке model
для соглашения об именах.
Работает нормально. role_user table
имеет значение, когда я $user->roles()->attach($role->id);
выполняю этот синтаксис.
при условии, что у меня уже есть user
и role
на моем database
, и я создал один query
на моих user
и role
.
Но когда я использую Jenssegers / MongoDB , role_user table
не генерирует отношения, вместо этого отношения генерируются вrole table
создание нового экземпляра user_ids: Array
и user table
также создание нового экземпляра role_ids: Array
.
Я также попытался ввести имя таблицы в моей модели следующим образом:
Ролевая модель
public function users() {
return $this->belongsToMany(User::class, 'role_user')->withTimestamps();
}
Пользовательская модель
public function roles() {
return $this->belongsToMany(Role::class, 'role_user')->withTimestamps();
}
Но все равно это не работает.
Вопрос
- Должен ли я беспокоиться о
role_user table
? - Это повлияет на мое приложение в будущем?
- Должен ли я уронить
role_user table
?
Примечание: я создал role_user table
базу на Laravel, красноречивом отношении ко многим .