IPB
ЛогинПароль:

 
 Ответить  Открыть новую тему 
> Структура БД
сообщение
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 68
Пол: Мужской
Реальное имя: Сергей

Репутация: -  0  +


Пытаюсь построить БД состоящую из 4 таблиц: Заказчик, Заказы, Производитель и Изделия.

Как я представляю себе эту базу я изобразил на схеме. Полей там будет побольше, что в принцыпе пока маловажно)


Только вот проблемка что я могу связать Фирму и Изделия( ведь не все фирмы могут производить весь ассортимент...

Далее мне из базы надо будет написать след. запросы:

Подсчитать на какую сумму Заказчик1 заказал изделий Изделие1 фирмы Фирма1;
Какие изделия производит Фирма1.

Проблемно для меня определиться со структурой БД (

Добавлено через 12 мин.
Или может быть в "Заказах" знать о производитель не особо важно....

тогда я думал можеттак(прикрепил)... Но тогда все изделия имеют одинаковую цену не зависящую от производителя



Эскизы прикрепленных изображений
Прикрепленное изображение Прикрепленное изображение
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


code warrior
****

Группа: Пользователи
Сообщений: 484
Пол: Мужской
Реальное имя: Славен

Репутация: -  8  +


Цитата(Scorp_Freeman @ 16.12.2007 18:54) *

Только вот проблемка что я могу связать Фирму и Изделия( ведь не все фирмы могут производить весь ассортимент...

Это связь многие-ко-многим. Реализуется через промежуточную таблицу (таблица маппинга изделий на фирмы) - Vendor_Products. В этой таблице всего 2 поля: Product_id и Vendor_id. Оба поля представляют собой первичный ключ.

Чтобы получить все продукты выпускаемые фирмой с id = 15 достаточно выполнить простой внешний джойн:
Код

SELECT p.Product_id, p.Title
FROM Vendor_Products AS vp LEFT OUTER JOIN Products AS p
ON vp.Vendor_id = 15



--------------------
ИзВ ин ИтЕ зА нЕ рОв НЫй П оч ЕРк
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 68
Пол: Мужской
Реальное имя: Сергей

Репутация: -  0  +


А можно делать так?

Код

SELECT Поставщики.id, Фирма.name
FROM  Поставщики  INNER JOIN Фирма,Изделия ON Поставщики.id_firma=Фирма.id AND Фирма.name='Sony' AND Изделия.Caption='Телевизор' AND  Изделия.id_post IN=Поставщики.id);



Т.е. обьединить больше двух связаных между собой таблиц, а то у меня выдает ошибку при этом запросе
"Ошибка синтаксиса в предложении FROM" unsure.gif

Сообщение отредактировано: Scorp_Freeman -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


code warrior
****

Группа: Пользователи
Сообщений: 484
Пол: Мужской
Реальное имя: Славен

Репутация: -  8  +


Цитата(Scorp_Freeman @ 18.12.2007 17:43) *
А можно делать так?

"Ошибка синтаксиса в предложении FROM" unsure.gif

Действительно. Моя ошибка. Извиняюсь.
Код

SELECT p.Product_id, p.Title
FROM Vendor_Products AS vp JOIN Products AS p
ON vp.Vendor_id = p.Product_id
WHERE vp.Vendor_id = 15


Для проверки вашего запроса требуется более полная схема БД.


--------------------
ИзВ ин ИтЕ зА нЕ рОв НЫй П оч ЕРк
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.03.2024 18:30
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name