powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Связь нескольких таблиц с одной
24 сообщений из 24, страница 1 из 1
Связь нескольких таблиц с одной
    #38650710
Clayman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, есть таблица Заявка, Место_загрузки , Место_выгрузки, как реализовать такую схему что данные Место_загрузки и Место_выгрузки относились только к одной записи(ну к Primary key)
Вот по такой схеме: Пример
Тут уже другой код записи и к ней относятся другие маршруты
Пример
Если предположить что это отдельные таблицы,(просто перетянутые на одну форму) то как эти записи связываются только с первичным ключом Заявки?
Спасибо,Буду признателен за ваши мнения
...
Рейтинг: 0 / 0
Связь нескольких таблиц с одной
    #38650712
Clayman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я хочу чтобы данные таблицы(Маршруты) синхронизировались только с одной записью Заявка, т.е. Вот есть у меня заявка например No40(pk), я заполняю поля и дохожу до пункта Маршрут:Место_загрузки и Место_выгрузки и указываю например: Минск (Загрузка) - Москва (Разгрузка) и сохраняю запись и получается у меня к 40-ому номеру Заявки привязаны маршруты Минск - Москва!
Т.е. к 1,2,3,... 999+ записям принадлежали только те пункты которые я определил на форме ЗАЯВКА
...
Рейтинг: 0 / 0
Связь нескольких таблиц с одной
    #38650713
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У заявки может быть несколько мест загрузки и несколько мест выгрузки?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Связь нескольких таблиц с одной
    #38650716
Clayman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да,т.е. чтобы к одной записи Заявки привязывалось несколько записей таблицы Маршрут(Ну или другой таблицы)
...
Рейтинг: 0 / 0
Связь нескольких таблиц с одной
    #38650717
Clayman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если ты поможешь реализовать такую связь я тебя расцелую)))Вся программа стопорится из-за этого...Программа не моя на скринах, это экзешник...
...
Рейтинг: 0 / 0
Связь нескольких таблиц с одной
    #38650722
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ClaymanДа,т.е. чтобы к одной записи Заявки привязывалось несколько записей таблицы
Маршрут(Ну или другой таблицы)
Хорошо, спрошу иначе: груз, загруженный в одном месте может быть развезён по нескольким?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Связь нескольких таблиц с одной
    #38650724
Clayman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovClaymanДа,т.е. чтобы к одной записи Заявки привязывалось несколько записей таблицы
Маршрут(Ну или другой таблицы)
Хорошо, спрошу иначе: груз, загруженный в одном месте может быть развезён по нескольким?

Не совсем так,вот смотри,я захожу на форму Заявка и номер заявки например 7(identity) и к этой заявке номер 7 я привязываю разные маршруты: место загрузки: Минск, Место выгрузки: Гродно,Место загрузки: тот же Гродно и Место выгрузки Вильнюс.
Т.е. Если я укажу два маршрута, то я получается еду с Минска до Гродно,а дальше впустую ехать...(Получается я попусту потратил топливо назад) и поэтому еще появляется третий маршрут, в Гродно загружаю опять(ну разгрузил и сейчас опять загружаю) и Возвращаюсь назад в Минск например..
...
Рейтинг: 0 / 0
Связь нескольких таблиц с одной
    #38650727
Clayman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Т.е. я добавляю Маршруты как запись и поэтому я не смогу записывать данные о маршрутах в одной таблице с Заказом.
На втором скрине видно, что к Заявке 32 привязаны 4 маршрута:Загрузка - Артёмовский , Выгрузка - Асбест, Загрузка - Асино, Выгрузка - Артёмовский...
...
Рейтинг: 0 / 0
Связь нескольких таблиц с одной
    #38650734
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Делай так:

Места (ид и т.д.)
Заявки (ид и т.п.)
Маршруты (ид, ид_заявки (ссылка на "Заявки"), место загрузки (ссылка на "Места"), место
выгрузки (ссылка на "Места") и т.д.)

Всё, три таблицы.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Связь нескольких таблиц с одной
    #38650743
Clayman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovДелай так:

Места (ид и т.д.)
Заявки (ид и т.п.)
Маршруты (ид, ид_заявки (ссылка на "Заявки"), место загрузки (ссылка на "Места"), место
выгрузки (ссылка на "Места") и т.д.)

Всё, три таблицы.

Спасибо за быструю помощь, если не получится реализовать то отпишусь, я знаю, ты мне поможешь:)
...
Рейтинг: 0 / 0
Связь нескольких таблиц с одной
    #38650745
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Claymanесли не получится реализовать то отпишусь
Ясно дело не получится, это к гадалке не ходи...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Связь нескольких таблиц с одной
    #38650765
Clayman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovДелай так:

Места (ид и т.д.)
Заявки (ид и т.п.)
Маршруты (ид, ид_заявки (ссылка на "Заявки"), место загрузки (ссылка на "Места"), место
выгрузки (ссылка на "Места") и т.д.)

Всё, три таблицы.


Судя по твоей записи, получается в таблицы МЕСТА два первичных ключа(Как так)? Так как в таблице МАРШРУТЫ указанны две ссылки: место_загрузки(PK в таблице МЕСТА. ФК в таблице Маршруты) и место_выгрузки ( PK в таблице Места, но ФК в таблице Маршруты)
Или Маршруты это запрос на соединение несколько таблиц?
Прикрепил код
...
Рейтинг: 0 / 0
Связь нескольких таблиц с одной
    #38650770
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ClaymanСудя по твоей записи, получается в таблицы МЕСТА два первичных ключа(Как
так)?
В таблице "Места", разумеется, один первичный ключ. Он на то и первичный, чтобы быть
единственным. А в таблице "Маршруты" (хотя это скорее "отрезки рейса") два вторичных
ключа, ссылающихся на одну и ту же таблицу "Места". В чём проблема-то?..

Код: sql
1.
2.
create table a (id integer not null primary key);
create table b (a1 integer foreign key references a, a2 integer foreign key references a);


Легко и непринуждённо.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Связь нескольких таблиц с одной
    #38650822
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ClaymanЗдравствуйте, есть таблица Заявка, Место_загрузки , Место_выгрузки, как реализовать такую схему что данные Место_загрузки и Место_выгрузки относились только к одной записи(ну к Primary key)
Если предположить что это отдельные таблицы,(просто перетянутые на одну форму) то как эти записи связываются только с первичным ключом Заявки?
Спасибо,Буду признателен за ваши мнения

- Скорее всего это не отдельные таблицы а одна с полями Место_загрузки и Место_выгрузки, просто в форме там где нужно показано Место_загрузки, а в другом месте (там где нужно) показано Место_выгрузки, а так эти поля скорее всего находятся в одной записи таблицы, вторичный ключ которой и привязан к первичному от заявки.
- На мой взгляд совершенно не рационально ложить Место_загрузки и Место_выгрузки в разные таблицы ибо любое Место_загрузки может быть и Местом_выгрузки, тогда это дублирование информации, то есть избыточность одного и того же в разных таблицах...
...
Рейтинг: 0 / 0
Связь нескольких таблиц с одной
    #38650938
Clayman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vmagClaymanЗдравствуйте, есть таблица Заявка, Место_загрузки , Место_выгрузки, как реализовать такую схему что данные Место_загрузки и Место_выгрузки относились только к одной записи(ну к Primary key)
Если предположить что это отдельные таблицы,(просто перетянутые на одну форму) то как эти записи связываются только с первичным ключом Заявки?
Спасибо,Буду признателен за ваши мнения

- Скорее всего это не отдельные таблицы а одна с полями Место_загрузки и Место_выгрузки, просто в форме там где нужно показано Место_загрузки, а в другом месте (там где нужно) показано Место_выгрузки, а так эти поля скорее всего находятся в одной записи таблицы, вторичный ключ которой и привязан к первичному от заявки.
- На мой взгляд совершенно не рационально ложить Место_загрузки и Место_выгрузки в разные таблицы ибо любое Место_загрузки может быть и Местом_выгрузки, тогда это дублирование информации, то есть избыточность одного и того же в разных таблицах...
Так а что ты посоветуешь?Просто если это будет одна таблица, то как я могу создать новую запись маршрута,если при добавлении новой записи будет создаваться новая запись Заявки(то есть Код_Заявки primary key), а на рисунке видно, что места добавляются как новые записи, т.е. они не могут быть в одной таблице. А насчет Место_загрузки может быть и местом выгрузки, для этого и делаю такую реализацию ,т.е. можно указать Место_Выгрузки - Вильнюс , Место_Загрузки - Вильнюс, Место_ Выгрузки - Минск...
Ну да немного переизбыток информации, но много записей не будет, главное удобство...
...
Рейтинг: 0 / 0
Связь нескольких таблиц с одной
    #38650945
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Claymanна рисунке видно, что места добавляются как новые записи
Маленький секрет: пользовательский интерфейс соотносится со структурой хранения данных
чуть меньше чем никак. То бишь совершенно. Вся хитрость в волшебных пузырьках слое
отображения одного на другое.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Связь нескольких таблиц с одной
    #38651223
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ClaymanТак а что ты посоветуешь?Просто если это будет одна таблица, то как я могу создать новую запись маршрута,если при добавлении новой записи будет создаваться новая запись Заявки(то есть Код_Заявки primary key)

Наоборот удобно так:
1. Нажал кнопку Новая заявка - Оформил заявку:
№, Дата, бла... бла...
2. Потом в подчиненной форме к этой заявке вбил все маршруты :
№, Место_отправления1, Место_прибытия1
№, Место_отправления2, Место прибытия2
............................................................


Неправильную ты себе сделал постановку задачи - ты стараешься просто повторить чужой интерфейс, а не решить задачу, по этому возможно повторяешь и чьи то ошибки... твоя ситуация один в один как в мультике "Ну Погоди!" когда волк тиснул у фокусника со сцены шляпу - цилиндр из которой зайцев достают и побежал в парк делать крекс - бекс - фекс... помнишь что из этого вышло ???
...
Рейтинг: 0 / 0
Связь нескольких таблиц с одной
    #38651225
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Clayman,

Итого, я бы сделал так:
1. Забил бы сразу классификатор пунктов (таблица punkt) и потом добавлял бы туда новые пункты по мере необходимости (естественно поле punkt не должно повторяться, и оно же может быть и старт и финиш). Эту таблицу можно в схему включить к таблице marshrut (если хватит ума), но я бы не стал и вообще бы ее не трогал, кроме как дополнял бы новые пункты по мере поступления....
2. Регистрируем очередную заявку (строка таблицы zajavka) и имеем ключ заявки на который будем вешать подчиненные маршруты.
3. Вводим все маршруты к очередной заявке из. п. 2 в подчиненную таблицу marshrut:
nom_marshrut - это 1, 2, 3... (ходки по текущей заявке)
id_punkt_start и id_punkt_finish это коды (ключи) городов из таблицы punkt и естественно их можно в форме (подчиненной форме) сделать как поля со списком, источник данных которых будет таблица punkt, типа выбрал из списка и все...
Надеюсь всё понятно...
...
Рейтинг: 0 / 0
Связь нескольких таблиц с одной
    #38651319
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Clayman,

Кстати о птичках ? С чего ты взял что у тебя вообще по интерфейсу есть пункт назначения ? По картинке твоего примера 2 у тебя там просто перечислены пункты: Старт (это первый), Финиш (это последний), а все что между ними - это промежуточные пункты и таким образом там просто всего одна таблица пунктов, а порядок следования определяется последовательностью пунктов в заявке... Соответственно весь маршрут - это совокупность пунктов в определенной последовательности, причем первый пункт равен последнему...
В твоем случае твоя схема вообще два пальца об асфальт, смотри картинки...
...
Рейтинг: 0 / 0
Связь нескольких таблиц с одной
    #38651327
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Clayman,

Кстати у обоих вариантов есть одна особенность, которую нужно учитывать:
Например весь маршрут по заявке это последовательность пунктов А, Б, С, Д, А,
но допустим, что Д это пункт выгрузки, но не совсем пункт загрузки, а на самом деле
пункт загрузки это город (Е) в 20 км. от города (Д) и из Е в Д машина поедет порожняком...

тогда по первому варианту будет так:
Заявка ХХХ:
1. А-Б
2. Б-С
3. С-Д
4. Д-Е (порожняк)
5. Е-А
а по второму так:
1. А
2. Б
3. С
4. Д
5. Е (порожняк)
6. А
...
Рейтинг: 0 / 0
Связь нескольких таблиц с одной
    #38651329
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне гораздо интереснее почему он думает, что целый маршрут собирается из одной заявки...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Связь нескольких таблиц с одной
    #38651331
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovМне гораздо интереснее почему он думает, что целый маршрут собирается из одной заявки...

Да тут уже пытаешься просто ответить на то, о чем спрошено.... ну наверное есть куча внешних заявок от клиентов (кому, куда и чего нужно везти), на базе этих заявок формируются внутренние заявки с максимальным охватом по реализации внешних заявок, куда и включаются пункты перевозок внешних заявок - получается маршрут внутренней заявки ...
...
Рейтинг: 0 / 0
Связь нескольких таблиц с одной
    #38651334
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Думаю тут речь о внутренней завке... после составления которой, она вручается водиле и он попер по маршруту...
...
Рейтинг: 0 / 0
Связь нескольких таблиц с одной
    #38651577
Clayman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Просто фишка в том, что я хочу привязать Записи места маршрута к записи номера Заявки
То есть к Заявке 30 были привязаны 5 маршрутов например, а к заявке 31 - два маршрута, вот что я хочу реализовать и чтобы это реализовать нужно грамотно составить БД, за что вам большое спасибо за помощь добрые люди, реально благодарен просто за внимание.
Вот ссылка на эту программу если что: Ссылка
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Связь нескольких таблиц с одной
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]