Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Ошибка: Определены следующие отношения с множественными связями
|
|||
|---|---|---|---|
|
#18+
Доброго всем времени, Вопрос следующий. Пытаюсь реализовать схемку вида: Класс ObjectType, имеет name, id; Класс RelationType, имеет name, id, entityName; Класс "связь" - Link, содержит: id, код объекта слева, код объекта справа, код типа объекта слева, код типа объекта справа. Т.е. для записи связи между, например, лицом и документом: объект вида "Лицо", код 1, связан с объектом вида "Документ", код 3, связью вида 4 (скажем, "бывший владелец документа"). Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. При попытке реализовать такую схему классов в Cache получаю ошибку вида Компиляция класса mypack.Link ОШИБКА #5266: Определены следующие отношения с множественными связями: 'relationType' В чем тут дело? Я бы еще поняла, если бы компилятор не принимал две ссылки на один и тот же класс ObjectType. Но какие вопросы вызывает в данном случае RelationType? Что я делаю не так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2008, 13:38 |
|
||
|
Ошибка: Определены следующие отношения с множественными связями
|
|||
|---|---|---|---|
|
#18+
Привет. > Class mypack.RelationType Extends mypack.DictionaryAbstract [ Not ProcedureBlock ] Рекомендую все-таки использовать ProcedureBlock. > Relationship leftObjectType As mypack.ObjectType [ Cardinality = parent, Inverse = leftLinks, Required ]; > Relationship rightObjectType As mypack.ObjectType [ Cardinality = parent, Inverse = rightLinks, Required ]; > Relationship relationType As mypack.RelationType [ Cardinality = parent, Inverse = relationLinks, Required ]; > Что я делаю не так? Отношения parent-child ставят объекты со стороны children в полную зависимость от объектов parent (в частности, они удаляются при удалении parent). Поэтому в Вашем случае лучше будет использовать one-many отношения. Кроме того, у Вас родители и дети перепутаны местами. Любви. logist (Сергей Шутов) ООО Димас, Хабаровск Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2008, 04:57 |
|
||
|
Ошибка: Определены следующие отношения с множественными связями
|
|||
|---|---|---|---|
|
#18+
logistРекомендую все-таки использовать ProcedureBlock. Таким образом импортировалась модель из Rational Rose; я не знаю, почему именно так. logistОтношения parent-child ставят объекты со стороны children в полную зависимость от объектов parent (в частности, они удаляются при удалении parent). Поэтому в Вашем случае лучше будет использовать one-many отношения. Вот это еще один вопрос, который на данный момент меня занимает. Когда нужно использовать parent-child, а когда one-many? Я читаю документацию, да. О полной зависимости, об удалении. Но разве не логично удалять связи некоторого вида, если сам вид такой связи удаляется? Здесь, как мне кажется, достаточно тонкая грань. Есть ли более четкий признак, по которому можно определить нужный тип связи? logistКроме того, у Вас родители и дети перепутаны местами. Можно подробнее - где именно перепутаны? Код: plaintext 1. 2. 3. У связи есть тип объекта (два: для объекта справа и слева.) Связей для каждого типа объекта может быть много, поэтому тип - родитель, связи - дети. У связи есть тип связи: аналогичная ситуация. Может, поясните, где тут ошибка? Я только начинаю изучать Cache. Сверяюсь с примерами из методичек и учебников. Вот пример с человеком и телефонами. Свойство телефона: Код: plaintext Свойство лица: Код: plaintext Вроде бы все по аналогии. Или я где-то дурак? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2008, 07:49 |
|
||
|
Ошибка: Определены следующие отношения с множественными связями
|
|||
|---|---|---|---|
|
#18+
Если я правильно понял справа и слева всегда будут одни и те же типы. Т.е. с одной стороны всегда лицо... С другой документ. Зачем тогда в третьей таблице хранить их типаж? У вас как? У лица может быть много документов, а у документа может быть много лиц? ---------- Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2008, 09:41 |
|
||
|
Ошибка: Определены следующие отношения с множественными связями
|
|||
|---|---|---|---|
|
#18+
krvsaЕсли я правильно понял справа и слева всегда будут одни и те же типы. Т.е. с одной стороны всегда лицо... С другой документ. Зачем тогда в третьей таблице хранить их типаж? У вас как? У лица может быть много документов, а у документа может быть много лиц? У лица может быть много документов, да. Разных документов, или с разными связями - например, паспорт может быть со связью типа "бывший владелец", когда паспорт был заменен; или "владелец" - когда это текущий паспорт. У документа не должно быть много лиц, хотя теоретически может быть - скажем, у договора или свидетельства о браке. :-) Но в данном случае имелось в виду, что в базе могут храниться сведения об объектах разных типов, и эта таблица - попытка унифицировать структуру хранения связей между объектами. Лицо. Документ. Автомобиль (например). Адрес. Любой объект, не только лицо и документ. Поэтому и типаж. Иначе в базе данных было бы много таблиц связей: лицо-документ, лицо-автомобиль, лицо-адрес, лицо-телефон... ну и так далее. Вопрос проектирования. На самом деле, тоже интересный вопрос. :-) Жизнеспособна ли такая модель проектирования связей... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2008, 12:13 |
|
||
|
Ошибка: Определены следующие отношения с множественными связями
|
|||
|---|---|---|---|
|
#18+
Привет. > Таким образом импортировалась модель из Rational Rose; я не знаю, почему > именно так. Скорее всего потому что импортер из Rose написан давно, когда ProcedureBlock в Каше еще не было. > Вот это еще один вопрос, который на данный момент меня занимает. Когда > нужно использовать parent-child, а когда one-many? Наиболее простой способ определить что Вам нужно - если при удалении родителя должны удаляться дети - это parent-child, если не должны - one-many. Реализация parent-child построена таким образом, что в поле может быть только одно child свойство! (т.к. на самом деле весь child объект хранится в parent-е) > Но разве не логично удалять связи > некоторого вида, если сам вид такой связи удаляется? Честно говоря, не очень. > Можно подробнее - где именно перепутаны? Да, это я чего то перепутал. Там же тип связи, а не объекта. То есть связь типа parent, а сам объект - child. Все правильно написано. Так что единственная проблема в Вашем коде - parent связь в классе должна быть только одна. Исправляйте на one-many. =logist (Сергей Шутов) ООО Димас, Хабаровск Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2008, 07:42 |
|
||
|
Ошибка: Определены следующие отношения с множественными связями
|
|||
|---|---|---|---|
|
#18+
logistТак что единственная проблема в Вашем коде - parent связь в классе должна быть только одна. Исправляйте на one-many. Да, спасибо. Уже опытным путем было выяснено, что двух родителей система "не кушает". One-to-many так one-to-many... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2008, 08:36 |
|
||
|
|

start [/forum/topic.php?fid=39&msg=35107160&tid=1559009]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
62ms |
get topic data: |
9ms |
get forum data: |
4ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 211ms |
| total: | 359ms |

| 0 / 0 |
