Mysql
 sql >> база данни >  >> RDS >> Mysql

Множество таблици с връзка едно към много (Laravel)

Трябва да използвате polymorphic отношения за това. Позволява на множество модели да използват една таблица.

Разгледайте документацията тук

Във вашия конкретен случай всяка от вашите таблици ще препраща към noteable_id колона и noteable_type .

noteable_id ще съдържа идентификатора на (A/B/C) модел.

noteable_type ще съдържа името на низа на модела (A/B/C) .

(A/B/C) моделите вече ще получат нов атрибут:

/**
 * (A/B/C) Model(s)
 */
public function notes()
{
    return $this->morphMany('App\Notes', 'noteable');
}

И note моделът ще инициира своите полиморфни свойства срещу името на атрибута, използвано за идентифициране на вашите polymorphic ids and types :

/**
 * Note Model
 */
public function noteable()
{
    return $this->morphTo();
}

Сега можете просто да извикате ->noteable на (A/B/C) модели и всички те споделят една таблица, без да е необходима друга обобщена таблица за всяка таблица.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL команди INSERT или REPLACE

  2. Грешка #1241 - Операнд трябва да съдържа 1 колона(и) в Mysql

  3. Мигрирайте от Oracle към MySQL

  4. Актуализирайте специфични записи на MySQL таблицата

  5. Кога е най-препоръчителното време за използване на mysql_real_escape_string()