powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Опять эта связь "многие ко многим..."
4 сообщений из 4, страница 1 из 1
Опять эта связь "многие ко многим..."
    #33498494
Alekseyka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вообщем такая ситуация. Емеется 3 таблицы:
TTur, TMatch, TSostav : TTable (соответствующие первичные ключи ID_Tur ... )
и соответствующие им источники данных:
SrcTur, SrcMatch, SrcSostav: TDataSource
Между TTur и TMatch уже имеется связь один ко многим(при помощи индексов)
Необходимо связать TMatch и TSostav как многие ко многим.

Параметры TMatch:
IndexFieldName => "!пусто"
IndexName => IndexTur
MasterFields => ID_Tur
MasterSource => SrcTur

Я решил добавить ещё одну таблицу как связующую, но как произвести связку я не совсем догоняю, ведь TMatch уже связана с таблицей TTur...

Новая таблица TComInMatch и соответсвующий набор данных SrcComInMatch.
Причём новая таблица содержит два первичных ключа ID_Match и ID_Comands

Я сделал следующее:

Связал сначала TMatch и TComInMatch как один ко многим используя индексы, то есть таблица TMatch является "родителем".

Потом связал TComands и TComInMatch, только "родителем" уже был TComInManth. Но связь уже была не через индексы...

Парамеры TComInMatch:
IndexFieldName => "!пусто"
IndexName => ID_Match
MasterFields => ID_Match
MasterSource => SrcMatch

Параметры TSostav:
IndexFieldName => ID_Sostav
IndexName => "!пусто"
MasterFields => ID_Comands
MasterSource => SrcComInMatch

Я не уверен правильно ли я всё сделал...
Помогите пожалуйста советом, как организовать связь в данной ситуации.
...
Рейтинг: 0 / 0
Опять эта связь "многие ко многим..."
    #33498495
Alekseyka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И как проверить работает ли связь или нет?
...
Рейтинг: 0 / 0
Опять эта связь "многие ко многим..."
    #33501005
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Есть подозрение, что Вы промахнулись форумом. В Delphi Ваше сообщение было бы куда уместнее.

2. Для выработки правильного стиля программирования стоит сразу выкинуть TTable.

3. По письму складывается впечатление, что Вы собираетесь построить в приложении точную копию БД, то есть сделать по одному компоненту "таблица" на каждую таблицу БД, прописать DataSource-ами все внешние ключи..... Это, назовем так, во-первых не слишком правильно, а во-вторых, нереализуемо.

Я сделал следующее:
....
Я не уверен правильно ли я всё сделал...
Как Вам сказать... Сами по себе действия вполне правильные, вот только в результате Вы (в приложении) организовали не связь "многие ко многим", но просто четырехуровневую мастер-деталь (один ко многим). Почти наверняка именно это Вам и требуется для нужд интерфейса.
...
Рейтинг: 0 / 0
Опять эта связь "многие ко многим..."
    #33501947
Alekseyka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня задача-то следущая. Имеется список футбольных матчей от 1 до 8 к примеру. Взависимости от того какой матч мы выберем во второй таблицы отображаются соответствующие им две команды, участвующие в этом матче. В одном матче могут играть несколько команд, но и одна команда может участвовать в нескольких матчах.

Попробовал написать с помощью SQL запроса:

select C.Name,C. Country, C.Trener, C.Winers
from Comands C, Match M, ComInMatch CIM
where C.Name=M.Gamer1 or C.Name=M.Gamer2 and
C.ID_Comands=CIM.ID_Comands and
M.ID_Match=CIM.ID_Match
Group by C.Name, C.Country, C.Trener, C.Winers
Having Count(C.ID_Comands)=2

2 softwarer

2. TTAble - это не таблица, а тип. Там после 3-х таблица двоеточие стоит для понятности.

3. Мне тоже такие мысли приходили. )
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Опять эта связь "многие ко многим..."
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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