|
|
|
Опять эта связь "многие ко многим..."
|
|||
|---|---|---|---|
|
#18+
Вообщем такая ситуация. Емеется 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 Я не уверен правильно ли я всё сделал... Помогите пожалуйста советом, как организовать связь в данной ситуации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2006, 22:52 |
|
||
|
Опять эта связь "многие ко многим..."
|
|||
|---|---|---|---|
|
#18+
И как проверить работает ли связь или нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2006, 22:53 |
|
||
|
Опять эта связь "многие ко многим..."
|
|||
|---|---|---|---|
|
#18+
1. Есть подозрение, что Вы промахнулись форумом. В Delphi Ваше сообщение было бы куда уместнее. 2. Для выработки правильного стиля программирования стоит сразу выкинуть TTable. 3. По письму складывается впечатление, что Вы собираетесь построить в приложении точную копию БД, то есть сделать по одному компоненту "таблица" на каждую таблицу БД, прописать DataSource-ами все внешние ключи..... Это, назовем так, во-первых не слишком правильно, а во-вторых, нереализуемо. Я сделал следующее: .... Я не уверен правильно ли я всё сделал... Как Вам сказать... Сами по себе действия вполне правильные, вот только в результате Вы (в приложении) организовали не связь "многие ко многим", но просто четырехуровневую мастер-деталь (один ко многим). Почти наверняка именно это Вам и требуется для нужд интерфейса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2006, 22:03 |
|
||
|
Опять эта связь "многие ко многим..."
|
|||
|---|---|---|---|
|
#18+
У меня задача-то следущая. Имеется список футбольных матчей от 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. Мне тоже такие мысли приходили. ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2006, 12:08 |
|
||
|
|

start [/forum/topic.php?fid=32&fpage=143&tid=1545444]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
33ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
29ms |
get tp. blocked users: |
1ms |
| others: | 206ms |
| total: | 303ms |

| 0 / 0 |
