Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > СУБД, общие вопросы > Создание базы данных в Access |
Автор: skorpik 16.6.2010, 07:17 |
Помогите создать БД по таким условиям: 1) имеется предприятие, у которого неколько поставщиков. У каждого из этих поставщиков есть несколько торговых точек. У каждой из торговых точек есть свои заказы на отгрузки продукции с данного предприятия. Создать БД в Access так, чтобы можно было ввести номер\название поставщика и посмотреть все его торговые точки, а также все его заказы на отгрузку на данную дату либо промежуток дат. Как связать 2 таблицы (поставщики и торговые точки) мне понятно. --+-----------------+ 1 | Поставщик1 | 2 | Поставщик2 | 3 | Поставщик3 | 4 | Поставщик4 | --+-----------------+ --+--+------------------------+ 1 | 1 | Пункт отгрузки1 | 2 | 1 | Пункт отгрузки2 | 3 | 1 | Пункт отгрузки3 | 4 | 2 | Пункт отгрузки11 | 5 | 2 | Пункт отгрузки12 | 6 | 3 | Пункт отгрузки21 | 7 | 3 | Пункт отгрузки22 | 8 | 3 | Пункт отгрузки23 | 9 | 4 | Пункт отгрузки24 | --+--+------------------------+ Тут ясно, что можно связать по второму полю второй таблицы - это и есть нфа о номере поставщика. Не могу сообразить, как сюда прицепить еще заказы на отгрузку. Помогите разобраться. Спасибо! |
Автор: Akina 16.6.2010, 07:56 |
В таблице заказов должны быть ссылки на таблицы поставщиков и точек отгрузки. Если не бывает так, что несколько поставщиков обеспечивают одну и ту же точку - достаточно одной ссылки на поставщика. |
Автор: skorpik 16.6.2010, 10:37 |
т.е. я создаю третью таблицу заказов вида: s_id |c_id| p_id| naimen | -------+----+------+------------+ 1 | 1 | 1 |заказ111 | 2 | 1 | 1 |заказ111 | 3 | 1 | 2 |заказ123 | 4 | 2 | 1 |заказ211 | 5 | 2 | 1 |заказ212 | 6 | 3 | 1 |заказ311 | 7 | 3 | 1 |заказ312 | 8 | 3 | 2 |заказ321 | 9 | 3 | 3 |заказ331 | 10 | 4 | 1 |заказ411 | 11 | 5 | 1 |заказ511 | 21 | 5 | 2 |заказ521 | тут s_id - порядковый номер заказа c_id - номер клиента p_id - номер пункта отгрузки Причем, 1 и 2 -я таблицы связаны по полю c_id в отношении 1 ко многим - это все работает. Подскажите, как мне связать третью таблицу к этим двум грамотно? Спасибо за помощь! |
Автор: Akina 16.6.2010, 11:51 |
Бывает ли ? |
Автор: Akina 16.6.2010, 13:43 | ||
В таком случае в последней таблице поле поставщика не требуется. Оно определяется через существующую связь точка-поставщик содержимым поля ИД точки поставки.
Нет, это вычисляется по имеющимся данным. Вместо этого следует ввести дату-время отгрузки заказа. |
Автор: skorpik 16.6.2010, 16:35 |
т.е. вот так нужно все делать? Поставщики --+-----------------+ 1 | Поставщик1 | 2 | Поставщик2 | 3 | Поставщик3 | 4 | Поставщик4 | --+-----------------+ Точки --+--+------------------------+ 1 | 1 | Пункт отгрузки1 | 2 | 1 | Пункт отгрузки2 | 3 | 1 | Пункт отгрузки3 | 4 | 2 | Пункт отгрузки11 | 5 | 2 | Пункт отгрузки12 | 6 | 3 | Пункт отгрузки21 | 7 | 3 | Пункт отгрузки22 | 8 | 3 | Пункт отгрузки23 | 9 | 4 | Пункт отгрузки24 | --+--+------------------------+ Заказы -------+------+------------+--------+ s_id | p_id | naimen | data | -------+------+------------+---------+ 1 | 1 |заказ111 |дата1 | 2 | 1 |заказ112 |дата2 | 3 | 2 |заказ123 |дата3 | 4 | 1 |заказ211 |дата4 | 5 | 1 |заказ212 |дата5 | 6 | 1 |заказ311 |дата6 | 7 | 1 |заказ312 |дата7 | 8 | 2 |заказ321 |дата8 | 9 | 3 |заказ331 |дата9 | 10 | 1 |заказ411 |дата10| 11 | 1 |заказ511 |дата11| 21 | 2 |заказ521 |дата12| -------+------+------------+---------+ В последней таблице убрал поле - номер поставщика, во второй таблице не добавлял поле - номер пункта для конкретного поставщика. Пок каким полям связать таблицы поподробнее плиз? |