Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > СУБД, общие вопросы > Элементарная базёнка.


Автор: Javoracle 20.12.2006, 18:15
У меня возникло пару проблем при создании моей первой базы.

Есть три таблицы:


Код

Поставщики:
p -номер заказа
pname-название компании
ptel- телефон

Заказчики:
z-номер заказчика
zname-имя заказчика
adress- адрес


Заказы:
o- номер заказа
z- кто заказал
p- кто поставил
oname-название товара.



Таблицы связаны z и p.

Возникли следующие проблемы:
Кажды поставщик и каждый заказчик могут быть только один раз в базе Заказы  smile 

Автор: skyboy 20.12.2006, 18:50
Цитата(Javoracle @  20.12.2006,  17:15 Найти цитируемый пост)
Кажды поставщик и каждый заказчик могут быть только один раз в базе Заказы 

странный подход, однако. А почему так?

Автор: Javoracle 20.12.2006, 21:12
  smile  Вот и я хотел бы узнать почему так...  

Автор: LSD 20.12.2006, 22:18
Цитата(Javoracle @  20.12.2006,  21:12 Найти цитируемый пост)
Вот и я хотел бы узнать почему так...  

Ты хочешь, чтобы тебе объяснили почему ты так спроектировал базу?

Автор: Javoracle 21.12.2006, 01:11
Цитата(LSD @  20.12.2006,  22:18 Найти цитируемый пост)

Ты хочешь, чтобы тебе объяснили почему ты так спроектировал базу? 


Да, я хочу чтобы мне обьяснили как изменить базу.  Чтобы она позволяла в таблице заказов повторения поставщиков и заказчиков(так как заказчик может заказать несколько заказов например)

Что не так в моей Бд? smile 



Автор: ТоляМБА 21.12.2006, 06:40
Цитата(Javoracle @  20.12.2006,  18:15 Найти цитируемый пост)
Поставщики:
p -номер заказа

Тут скорее опечатка, надо читать "р-номер ПОСТАВЩИКА"
Цитата(Javoracle @  21.12.2006,  01:11 Найти цитируемый пост)
Чтобы она позволяла в таблице заказов повторения поставщиков и заказчиков
 Ну дык в таблице "Заказы" поля "р" и "z" не делай уникальными (то есть чтобы там могли допускаться повторы) вот и всё.

Автор: Rodman 21.12.2006, 10:03
Мож просто добавить в заказы

********************
Заказы:
---------------------------
o- номер заказа
z- кто заказал
p- кто поставил
oname-название товара
dateorder - дата заказа.
*********************

и тогда просто в случае заказа одним заказчиком нескольких товаров, ставь под одником кодом...

Автор: ТоляМБА 21.12.2006, 11:31
Rodman, при твоей структуре таблы данные будут дублирваться (например при большом количестве товара в одном заказе будет одинаковые: o,z,p, dateorder) что не есть хорошо. Лучше тогда добавить одну таблу:
Tovar
o-номер заказа
oname-название товара
И связать их с таблой заказы по полю о, а данные ввыводить:
Код
 Select zak.o, zak.z, zak.p, tovar.oname, zak.dateorder
from [Заказы] as zak
inner join Tovar
on zak.o=Tovar.o
 Ну и, ясен пень, в таблу товаров можно ещё цены добавить и всё такое...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)