-
Доброго времени суток! Объясните, пожалуйста, как организовать связь многие ко многим (БД в Paradox). И возможно ли это вообще? ;)
-
> [0] andirock2112 © (12.04.09 05:37) > Доброго времени суток! Объясните, пожалуйста, как организовать > связь многие ко многим (БД в Paradox). И возможно ли это > вообще? ;)
Смотри примеры из стандартной поставки Делфи.
-
хм... а вы уверены, что там это есть?
-
-
Ха! Как это сделать теоретически я знаю! Мне бы кто-нибудь сказал, где и что прописать надо, чтобы эта база работала ;)
-
> andirock2112 © (12.04.09 11:12) [4]
В "Database desktop" в дизайнере таблицы надо задать "Referential integrity" а вообще, paradox must die =)
-
> turbouser ©
Ну, с тем, что paradox must die это я согласна... :( ...С Referential integrity не получается (delphi эти связи не видит) Может еще варианты будут? :)
-
> Ха! Как это сделать теоретически я знаю! вообще то если ли бы знал (/понимал), то что практически прописывать у тебя бы вопроса не стояло.
вот разве сложно сделать дополнительно таблицу? - нет. 2 поля в ней? - нет. связь один ко многим из одной таблици на одно поле, и такуюже из другой на другое? - тоже нет. т.е. все несложно, но тем не менее связь многие ко многим этим уже построена...
если не понимаешь принципа, то не сможешь с этим работать, простейший запрос написать... а волшебного средства, типа "поставил галочку где нибудь и все работает" нету.
> ...С Referential integrity не получается (delphi эти связи не видит) а что он тут должен увидеть? это простое обеспечение ссылочной целостности на уровне движка. т.е. это метод которым делается, а не "волшебное средство" чтобы выбрал и все само делается.
> Может еще варианты будут? :) солить их собираешься?
-
sniknik, ну во-первых, логическое понимание, как что-то сделать, и практическое приложение своих знаний - это совсем разные вещи. Во-вторых мне нужно не волшебное средство, а нормальное объяснение, потому что в учебниках я этого не нашла. Ну а насчет всего остального... базы данных я начала изучать недавно и до этого связывала таблицы при помощи конструктора связей в Delphi, не используя Referential integrity. Вот поэтому я и прошу подробно мне объяснить, как это сделать.
> > Может еще варианты будут? :) > солить их собираешься?
Зачем солить? На полочку положу и буду использовать по мере необходимости.
-
> а нормальное объяснение по ссылке в [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
это тебе поможет?
надо не варианты на полочку собирать, а пытаться разобраться, понять, так чтобы самому любой вариант было не проблема написать.
-
> возможно ли это вообще?
Две отдельно взятые нормальные РСУБД-таблицы не могут жить в сношении "многие к многим".
И Парадокс тут ни причем.
|