Чтобы создать связь "один ко многим" между таблицей предметов и таблицей красок без использования промежуточной таблицы, можно добавить в таблицу предметов два внешних ключа, которые будут ссылаться на одну и ту же таблицу красок.
Вот как это можно сделать:
1. Создайте таблицу красок (допустим, она называется `Colors`):
```sql
CREATE TABLE Colors (
ColorID INT PRIMARY KEY,
ColorName VARCHAR(50) NOT NULL
);
```
2. Создайте таблицу предметов (допустим, она называется `Items`), добавив два внешних ключа для внутренней и наружной окраски:
```sql
CREATE TABLE Items (
ItemID INT PRIMARY KEY,
ItemName VARCHAR(100) NOT NULL,
InnerColorID INT,
OuterColorID INT,
FOREIGN KEY (InnerColorID) REFERENCES Colors(ColorID),
FOREIGN KEY (OuterColorID) REFERENCES Colors(ColorID)
);
```
Таким образом, вы создаете связь "один ко многим" между таблицей предметов и таблицей красок, где каждый предмет может иметь одну внутреннюю и одну наружную окраску, ссылаясь на общую таблицу красок.
Примеры данных:
- Таблица `Colors` может содержать записи:
```
ColorID | ColorName
---------|-----------
1 | Red
2 | Blue
3 | Green
```
- Таблица `Items` может выглядеть так:
```
ItemID | ItemName | InnerColorID | OuterColorID
--------|------------|---------------|--------------
1 | Chair | 1 | 2
2 | Table | 2 | 3
3 | Desk | 3 | 1
```
С помощью такой структуры вы можете управлять окраской предметов без использования дополнительных промежуточных таблиц, сохраняя структурированность и целостность данных.