![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Связь многие ко многим [D7, Paradox]
andirock2112 © (2009-04-12 05:37:00)Доброго времени суток! Объясните, пожалуйста, как организовать связь многие ко многим (БД в Paradox). И возможно ли это вообще? ;)
Сергей М. (2009-04-12 20:12:00) [1]
> возможно ли это вообще?
Две отдельно взятые нормальные РСУБД-таблицы немогут жить в сношении "многие к многим".
И Парадокс тут ни причем.
sniknik (2009-04-12 15:18:00) [2]> а нормальное объяснение
по ссылке в [3] вполне нормальное объяснение сути.
> Вот поэтому я и прошу подробно мне объяснить, как это сделать.
3 шага в [7], это фактически уже подробное объяснение как сделать такую связь. (+ 6 чтобы эту связь "укрепить" не дать внести туда не валидные ссылки)
но вот чтобы использовать, тут надо больше, надо и суть понимать и методы работы с базами/таблицами уметь использовать.
вот например я дам тебе варианты получения (пример работы с ними) -
все работы где был Сидоров (то что в примере в ссылке):
SELECT n.Name,j.Job
FROM TJob j
INNER JOIN (TName n INNER JOIN TCross c ON n.ID = c.ID_NAME) ON j.ID = c.ID_WORK
WHERE n.ID=3
или наоборот все работники МУП-а:
SELECT j.Job, n.Name
FROM TJob j
INNER JOIN (TName n INNER JOIN TCross c ON n.ID = c.ID_NAME) ON j.ID = c.ID_WORK
WHERE j.ID=2
это тебе поможет?
надо не варианты на полочку собирать, а пытаться разобраться, понять, так чтобы самому любой вариант было не проблема написать.
andirock2112 (2009-04-12 14:29:00) [3]sniknik, ну во-первых, логическое понимание, как что-то сделать, и практическое приложение своих знаний - это совсем разные вещи. Во-вторых мне нужно не волшебное средство, а нормальное объяснение, потому что в учебниках я этого не нашла.
Ну а насчет всего остального... базы данных я начала изучать недавно и до этого связывала таблицы при помощи конструктора связей в Delphi, не используя Referential integrity. Вот поэтому я и прошу подробно мне объяснить, как это сделать.
> > Может еще варианты будут? :)
> солить их собираешься?
Зачем солить? На полочку положу и буду использовать по мере необходимости.
sniknik (2009-04-12 13:24:00) [4]> Ха! Как это сделать теоретически я знаю!
вообще то если ли бы знал (/понимал), то что практически прописывать у тебя бы вопроса не стояло.
вот разве сложно сделать дополнительно таблицу? - нет.
2 поля в ней? - нет.
связь один ко многим из одной таблици на одно поле, и такуюже из другой на другое? - тоже нет.
т.е. все несложно, но тем не менее связь многие ко многим этим уже построена...
если не понимаешь принципа, то не сможешь с этим работать, простейший запрос написать... а волшебного средства, типа "поставил галочку где нибудь и все работает" нету.
> ...С Referential integrity не получается (delphi эти связи не видит)
а что он тут должен увидеть? это простое обеспечение ссылочной целостности на уровне движка. т.е. это метод которым делается, а не "волшебное средство" чтобы выбрал и все само делается.
> Может еще варианты будут? :)
солить их собираешься?
andirock2112 (2009-04-12 12:45:00) [5]
> turbouser ©
Ну, с тем, что paradox must die это я согласна... :(
...С Referential integrity не получается (delphi эти связи не видит) Может еще варианты будут? :)
turbouser (2009-04-12 11:59:00) [6]
> andirock2112 © (12.04.09 11:12) [4]
В "Database desktop" в дизайнере таблицы надо задать "Referential integrity"
а вообще, paradox must die =)
andirock2112 (2009-04-12 11:12:00) [7]Ха! Как это сделать теоретически я знаю! Мне бы кто-нибудь сказал, где и что прописать надо, чтобы эта база работала ;)
turbouser (2009-04-12 10:35:00) [8]
> andirock2112 ©
3 секунды в гугле и http://www.firststeps.ru/mfc/msdn/r.php?117
andirock2112 (2009-04-12 07:02:00) [9]хм... а вы уверены, что там это есть?
AndreyV (2009-04-12 06:04:00) [10]> [0] andirock2112 © (12.04.09 05:37)
> Доброго времени суток! Объясните, пожалуйста, как организовать
> связь многие ко многим (БД в Paradox). И возможно ли это
> вообще? ;)
Смотри примеры из стандартной поставки Делфи.