![]() |
Модераторы: LSD |
![]() ![]() ![]() |
|
skorpik |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 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 | --+--+------------------------+ Тут ясно, что можно связать по второму полю второй таблицы - это и есть нфа о номере поставщика. Не могу сообразить, как сюда прицепить еще заказы на отгрузку. Помогите разобраться. Спасибо! |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 13 Всего: 454 |
В таблице заказов должны быть ссылки на таблицы поставщиков и точек отгрузки. Если не бывает так, что несколько поставщиков обеспечивают одну и ту же точку - достаточно одной ссылки на поставщика.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
skorpik |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 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 ко многим - это все работает. Подскажите, как мне связать третью таблицу к этим двум грамотно? Спасибо за помощь! |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 13 Всего: 454 |
Бывает ли
? -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
skorpik |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 82 Регистрация: 10.1.2008 Репутация: нет Всего: нет |
нет, так не бывает. Все верно Вы вначале предположили. Я вот подумал - так плохо у меняполучится, судя по тем примерам таблиц, что я привел. Может нужно еще одно поле ввести в таблицу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 - порядковый номер заказа? Помогите плиз. |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 13 Всего: 454 |
В таком случае в последней таблице поле поставщика не требуется. Оно определяется через существующую связь точка-поставщик содержимым поля ИД точки поставки.
Нет, это вычисляется по имеющимся данным. Вместо этого следует ввести дату-время отгрузки заказа. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
skorpik |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 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 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Общие вопросы по базам данных" | |
|
Данный форум предназначен для обсуждения вопросов о базах данных не попадающих под тематику других форумов:
Данный форум не предназначен для:
Если вы не соблюдаете эти правила, не удивляйтесь потом не найдя свою тему/сообщение.
Полезные советы: Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, LSD, Zloxa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | СУБД, общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |