Модераторы: LSD
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создание базы данных в Access, Создание связанных таблиц в Access 
:(
    Опции темы
skorpik
Дата 16.6.2010, 07:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 10.1.2008

Репутация: нет
Всего: нет



Помогите создать БД по таким условиям:
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 |
--+--+------------------------+
Тут ясно, что можно связать по второму полю второй таблицы - это и есть нфа о номере поставщика.
Не могу сообразить, как сюда прицепить еще заказы на отгрузку. Помогите разобраться. Спасибо!
PM MAIL   Вверх
Akina
Дата 16.6.2010, 07:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 13
Всего: 454



В таблице заказов должны быть ссылки на таблицы поставщиков и точек отгрузки. Если не бывает так, что несколько поставщиков обеспечивают одну и ту же точку - достаточно одной ссылки на поставщика.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
skorpik
Дата 16.6.2010, 10:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 10.1.2008

Репутация: нет
Всего: нет



т.е. я создаю третью таблицу заказов вида:

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 ко многим - это все работает. Подскажите, как мне связать третью таблицу к этим двум грамотно?
Спасибо за помощь!
PM MAIL   Вверх
Akina
Дата 16.6.2010, 11:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 13
Всего: 454



Бывает ли
Цитата(Akina @  16.6.2010,  08:56 Найти цитируемый пост)
так, что несколько поставщиков обеспечивают одну и ту же точку 

?


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
skorpik
Дата 16.6.2010, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 10.1.2008

Репутация: нет
Всего: нет



Цитата(Akina @  16.6.2010,  08:56 Найти цитируемый пост)
Бывает литак, что несколько поставщиков обеспечивают одну и ту же точку ?


нет, так не бывает. Все верно Вы вначале предположили. Я вот подумал - так плохо у меняполучится, судя по тем примерам таблиц, что я привел. Может нужно еще одно поле ввести в таблицу2, для нумерации пунктов отгрузки для конкретного поставщика?
типа так:

id | p_id |c_id|p_naimen
1  |1      |1     |пункт11
2  |2      |1     |пункт12
3  |3      |1     |пункт13
4  |1      |2     |пункт21
5  |2      |2     |пункт22

где p_id - и есть это новое поле, c_id - номер поставщика, id - порядковый номер заказа? Помогите плиз.
PM MAIL   Вверх
Akina
Дата 16.6.2010, 13:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 13
Всего: 454



Цитата(skorpik @  16.6.2010,  14:31 Найти цитируемый пост)
нет, так не бывает

В таком случае в последней таблице поле поставщика не требуется. Оно определяется через существующую связь точка-поставщик содержимым поля ИД точки поставки.
Цитата(skorpik @  16.6.2010,  14:31 Найти цитируемый пост)
Может нужно еще одно поле ввести в таблицу2, для нумерации пунктов отгрузки для конкретного поставщика?

Нет, это вычисляется по имеющимся данным. Вместо этого следует ввести дату-время отгрузки заказа.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
skorpik
Дата 16.6.2010, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 10.1.2008

Репутация: нет
Всего: нет



т.е. вот так нужно все делать?
Поставщики
--+-----------------+
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|
-------+------+------------+---------+

В последней таблице убрал поле - номер поставщика, во второй таблице не добавлял поле - номер пункта для конкретного поставщика. Пок каким полям связать таблицы поподробнее плиз?

Это сообщение отредактировал(а) skorpik - 16.6.2010, 19:26
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Общие вопросы по базам данных"
LSD
Zloxa

Данный форум предназначен для обсуждения вопросов о базах данных не попадающих под тематику других форумов:

  • вопросам по СУБД для которых нет отдельных подфорумов
  • вопросам которые затрагивают несколько разных СУБД (например проблема выбора)
  • инструменты для работы с СУБД
  • вопросы проектирования БД
  • теоретически вопросы о СУБД

Данный форум не предназначен для:

  • вопросов о поиске разлиных БД (если не понимаете чем БД отличается от СУБД то: а) вам не сюда; б) Google в помощь)
  • обсуждения проблем с доступом к СУБД из различных ЯП (для этого есть соответсвующие форумы по каждому ЯП)
  • обсуждения проблем с написание SQL запросов, для этого есть форум Составление SQL-запросов
  • просьб о написании курсовой, реферата и т.п., для этого есть Центр помощи или фриланс биржа
  • объявлений о найме специалистов, для этого есть раздел Объявления о найме специалистов

Если вы не соблюдаете эти правила, не удивляйтесь потом не найдя свою тему/сообщение. ;)


Полезные советы:

При написании сообщения постарайтесь дать теме максимально понятное название. В теме максимально подробно опишите проблему. Если применимо укажите: название базы данных и версии (MySQL 4.1, MS SQL Server 2000 и т.п.); используемых язык программирования; способа доступа (ADO, BDE и т.д.); сообщения об ошибках.

Для вставки кода используйте теги [code=sql] [/code].

Литературу по базам данных можно поискать здесь.

Действия модераторов можно обсудить здесь.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, LSD, Zloxa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | СУБД, общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0650 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.