Как вызвать и связать 1 стол с 2 столами многие ко многим

так что у меня есть эта база данных

ALTER TABLE `Partcar` (
     `partcarID` Char(7) NOT NULL,
     `partcar_price` decimal(19,4) DEFAULT NULL,
     `partcar_name` varchar(100) DEFAULT NULL,
     `carIDFK` int(10) NOT NULL,
      PRIMARY KEY (`PartcarID`)
      UNIQUE KEY `car` (`carID`)
      CONTRAINT carIDFK FOREIGN KEY (`carIDK`) REFERENCES car(`carID`)
      );

CREATE TABLE `car` (
      `carID` Char(7) NOT NULL,
      `name_car` varchar(100) DEFAULT NULL,
      `car_price` decimal(19,4) DEFAULT NULL,
      PRIMARY KEY (`PCID`)
      );

ALTER TABLE `assembly` (
      `assemblyID` char(8) NOT NULL,
      `assembly_price` decimal(19,4) DEFAULT NULL,
      `partcarIDFK` int(10) NOT NULL,
      `barbellIDFK` int(10) NOT NULL,
      PRIMARY KEY (`assemblyID`),
      UNIQUE KEY `partcar` (`partcarIDFK`),
      UNIQUE KEY `barbell` (`barbellIDFK`),
      CONSTRAINT `partcarIDFK` FOREIGN KEY (`partcarIDFK`) REFERENCES partcar(`partcarID`),
      CONSTRAINT barbellIDFK FOREIGN KEY (`barbellIDFK`) REFERENCES barbell(`barbellID`)
      );

ALTER TABLE `barbell` (
      `barbellID` char(10) NOT NULL,
      `name_barbell` varchar(100) DEFAULT NULL,
      `carIDFK` int(10) NOT NULL,
      PRIMARY KEY (`barbellID`),
      UNIQUE KEY `car` (`carID`),
      CONTRAINT carIDFK FOREIGN KEY (`carIDK`) REFERENCES car(`carID`)
      );

Итак, с этими 3 таблицами, я запутался, как связать 3 из них, и я думаю, что barbell и partcar создают отношения "многие ко многим" с assembly,

так что это образец ценности

сборка и выпуск автомобилей

| Code Car(CarID) + Assembly   |
-------------------------
| C1234 - B123456              |

этот код является ссылкой для просмотра детали.

автомобиль + вывод деталей

| No. | IDcar + IDpart  | Description | Price |
----------------------------------------------
| 1   | C1234 - A333    | Interior    | $1    |
| 2   | C1234 - B444    | Chassis     | $2    |

и про выход штанги

| No. | IDcar    | ID Barbell | Description  | Price |
-----------------------------------------------------
| 1   | C1234    |  1234-1111 |  Big Wheel   | $1    |
| 2   | C1234    |  1234-2222 |  Wide Wheel  | $2    |

ИЛИ ЖЕ

сборка и выпуск автомобилей

 | Code Car + Assembly   | ID Partcar, ID barbell | Description | Qty
 -----------------------------------------------------------------------
 | C1234 - B123456       |                        | 96' Cougar  |   
                         |  A333                  | Interior    |  1
                         |  B444                  | Chassis     |  1
                         |  1234-1111             | Big Wheels  |  1
                         |  1234-2222             | Wide Wheels |  1

это таблица, поэтому я просто хочу знать, какие отношения сделать это и как вызвать их с помощью PHP?

* описание - это название машины, детали и штанги. и код автомобиля - carID

* примечание: не беспокойтесь о таблицах, я просто хочу знать, как их соединить и как это вызвать, если таблицы такие.

Просто используйте JOIN.

Barmar 23.03.2018 08:54

Что такое Code Car? Что такое Description?

Barmar 23.03.2018 08:58

@Barmar плохо исправлю это, если я просто использую присоединиться, как насчет отношений? это верно? или я должен что-то добавить?

Ainal Yaqin 23.03.2018 09:01

Вам необходимо создать дополнительные таблицы отношений для отношений «многие ко многим».

Barmar 23.03.2018 09:04

@Barmar хм, я думаю об этом. но как это назвать в php? просто использовать соединение как другую таблицу?

Ainal Yaqin 23.03.2018 09:07

Да, а почему бы по-другому? SELECT ... FROM table1 JOIN relationtable r ON r.table1ID = table1.id JOIN table2 ON table2.id = r.table2ID

Barmar 23.03.2018 09:09

@Barmar idk, возможно, он будет другим, поскольку в нем есть строка с разными данными из другой таблицы. я попробую, спасибо

Ainal Yaqin 23.03.2018 09:13
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
0
7
87
0

Другие вопросы по теме