Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Как сделать связь между полями 1й таблицы?


Автор: Conscience 29.11.2006, 18:58
вроде всё там более или менее интуитивно понятно
но вот столкнулась с проблеммой
в 1й таблице поле этой таблицы ссылается на ключевой поле из неё же
как ни копалась - так и не получается прописать такую ссылку
оно предлагает связсь ставить с любой таблицей, кроме нужной мне
в книжке ничего об этом не нашла, хотя всё по данной теме прочитала
в инете копалась, пка тоже ничего толкового не попалось на глаза

может кто-то снизойдёт до такого, наверное для вас простого вопроса и пояснит, как связать 2 поля в 1й таблице?
а то у меня уже руки опускаются

Автор: Rodman 29.11.2006, 19:05
соединия их в запросе и все...

Автор: Conscience 29.11.2006, 19:07
т.е. при создании таблицы я эту связь никак не смогу указать в явном виде, как указываю свяь между 2мя полями в разных таблицах?

Автор: Rodman 29.11.2006, 19:18
я точно не скажу, про Database Desktop...

но вот на пример в MySQL визуально таблицы не свяжешь...

тогда в запросах пишут
Код

SELECT categories.name, categories.id, imag.name, imag.id
FROM categories INNER JOIN imag ON categories.id = imag.id;

Автор: SergeBS 30.11.2006, 08:31
Conscience, 
Цитата
в 1й таблице поле этой таблицы ссылается на ключевой поле из неё же

Либо это вычисляемое поле, либо грубейшая ошибка проектирования.

Автор: ТоляМБА 30.11.2006, 09:47
Table1:
ID(int),
ARTIKUL(char), - Артикул
PARENTARTIKULID(Int) - Айдишник родительского артикула

Код
Select t1.Artikul, T1_1.Artikul as ParentArtikul
from Table1 t1
inner join Table1 T1_1
on t1.PARENTARTIKULID=T1_1.id
 Типа то?

Добавлено @ 09:50 
1. При чём тут "Database Desktop"?
2. Тип БД хто указвыть будет?

Автор: Akella 30.11.2006, 12:07
Conscience, тебе не нужно делать никакие ссылки внутри самой таблицы, связывай данные для построения дерева уже в программе.

я же тебе давал пример
http://forum.vingrad.ru/index.php?showtopic=113867&view=findpost&p=874378
по такому же принципу и в парадоксе реализуешь.

Автор: Conscience 30.11.2006, 12:18
вопрос закрыт
мне уже вчера пояснили, что то, что мне нужно - делается в клиентской части ... а я пыталась этого добиться в серверной (т.к. от меня требовалось только создать БД и вбить туда что-то для тестов... а в ручном режиме я боялась сделать ошибки, т.к. дерево там должно быть приличным... вот я и думала, что можно как-то сделать контроль вводимых данных


Akella, 
я просто не во всём там разобралась .. и вообще пришла к выводу, что когда мало чего знаешь про программирование и посторение БД - в чужом коде трудно разбираться... а у тебя там видимо дополнительные библиотеки или что-то ещё использовано
у меня делфи не хотят компилировать ту программу - и часть функций в ней не понимают просто
а я и подавно не понимаю.. чтобы разобраться - надо больше времени, чем у меня осталось


ТоляМБА, 
именно типа того и надо.. но это уже если вводить через что-то, а не при построении таблиц, как я пыталась этого добиться
я думала, что я может не так что делаю просто
хотя если в следующем семестре придётся делать ту самую клиентскую часть - это мне очень пригодится smile


SergeBS, это просто неудачная попытка пояснить, что мне нужно в итоге smile))

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)