Всем привет, хотел бы обратиться за помощью чтобы зарефакторить отношнения в моделях в Laravel. Есть у меня таблица вида:
------------|------------|------------|--------------|
City | Category |Subcategory | Company |
------------|------------|------------|--------------|
id | id | id | id |
| city_id |category_id |subcategory_id|
name | name | name | name |
------------|------------|------------|--------------|
City.php
public function categories()
{
return $this->hasMany(Category::class);
}
Category.php
public function subcategories()
{
return $this->hasMany(Subcategory::class);
}
Subcategory.php
public function category()
{
return $this->hasMany(Company::class);
}
В общем проблема в том что городов много а категории могут быть одни и те же для всех городов, в моём случае же категории повторяются для каждого города, вчера весь день над этим думал, пробовал все возможные отношения с Laravel и никак не смог продумать логику. Пример: Если я добавляю например новый города и после этого захочу к нему категории прикрепить и каждый раз получается что я создаю новую и дублирующую категории именно для 1 города... Очень надеюсь на помощь...Как правильно нужно такое сделать!?
Логика такая: У нас есть города у которых много компаний и эти компании поделены на категории и подкатегории. Как на zoon.ru сделано. Выбираешь город, появляется категории и внизу подкатегории.
------------|-------------|------------|------------|--------------|
City |city_category| Category |Subcategory | Company |
------------|-------------|------------|------------|--------------|
id | city_id | id | id | id |
| | |category_id |subcategory_id|
name | category_id | name | name | name |
------------|-------------|------------|------------|--------------|
Добавте табличку и метод belongsToMany в модели
Необходимо создать 2 дополнительные таблицы:
1) city_category c составным ключом: {city_id,category_id}, что позволит нам указывать только те категории, которые есть в данном городе
2) category_company с ключом: {category_id,company_id}, позволит связывать несколько компаний с несколькими категориями
Так же можно упразднить таблицу Subcategory, добавив в таблице Category поле parent_id, так как по факту это одна и та же сущность, но это только в том случае если у вас одна категория не может иметь несколько родителей.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Доброго времени сутокПомогите решить задачу с MySQL (знаком довольно плохо):
Здравствуйте, стоит такая задачав контактах для посетителей страны России показывать один блок контактов, для посетителей с Украины другой,...
Суть в чем, делаю расширение для хром, ему нужно обработать адрес открытой страницыСтруктура сайта такая: http://site