Трябва да използвате 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) модели и всички те споделят една таблица, без да е необходима друга обобщена таблица за всяка таблица.