Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Моделирование связей между сущностями
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток. Есть вопрос по моделированию связей между сущностями. Каше предоставляет 2 варианта: 1) Использование объектной ссылки Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2010, 10:08 |
|
||
|
Моделирование связей между сущностями
|
|||
|---|---|---|---|
|
#18+
первый вариант подходит для реализации связей типа один к одному а на втором варианте также можно реализовать связь один ко многим когда нужна связь один к одному думаю лучше использовать первый вариант _________________________________ Cache for Windows NT (AMD64) 5.0.21 (Build 6408) Tue Jan 3 2006 13:37:41 EST ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2010, 10:23 |
|
||
|
Моделирование связей между сущностями
|
|||
|---|---|---|---|
|
#18+
У Relationship отслеживание ссылочной целостности на уровне системы, хотя вот здесь в этом сильно сомневаются ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2010, 10:34 |
|
||
|
Моделирование связей между сущностями
|
|||
|---|---|---|---|
|
#18+
первый вариант подходит для реализации связей типа один к одномуПервый вариант ничуть не хуже подходит для реализации связей типа 1:M. Потребность в связях 1:1, скорее всего, говорит о проектных ошибках. Я во многом согласен с мнением Д.Лисеева, высказанном в дискуссии 3-летней давности. Cache на рынке уже более 10 лет, технологии пора бы уже обрести зрелость. Вам не кажется, что за эти годы объектно-реляционный подход к проектированию БД так и не обрел крепкого теоретического фундамента, поэтому и пользоваться им весьма не просто? На практике, в основном, встречаются 2 подхода: Р) РСУБД + приложение, работающее с ней только через SQL Приложение реализовано в зарегистрированных классах или даже в "рутинах". Т.е. отдельно данные, отдельно - программы. Программы могут использовать глобалы в "технических" целях, таких как временное хранение промежуточных данных. ОО) ООБД полностью инкапсулирована в интерфейсные классы. Тогда уже неважно (для прикладного программиста), как она устроена, т.к. он с нею напрямую не работает, и всевозможные Relationship ему не подмога. Внутри интерфейсных классов работа с БД в этом случае может быть реализована даже на уровне глобалов - это уже вопрос реализации. Плюсы и минусы Р-подхода: + можно полноценно использовать сторонние средства моделирования БД + можно использовать какие-вам-нравятся подходы к программированию приложения. - пресловутый impendance mismatch. Плюсы и минусы ОО-подхода: + потенциально - более высокое быстродействие + большая защищенность БД от ошибок прикладных программистов - сложнее "добыча данных" из такой системы по инициативе сторонних программ. Понятно, что картинка грубая, и в жизни встречается множество нюансов. М.б., я что-то важное упустил. Принес ли кому-нибудь счастье объектно-реляционный подход? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2010, 12:15 |
|
||
|
Моделирование связей между сущностями
|
|||
|---|---|---|---|
|
#18+
А может просто использовать, зная достоинства и недостатки? :) Г.Олди Старое доброе зло Стена вставала над миром. Величественная в неумолимости рока. Два цвета, которые лишь в страшном сне могут смешаться друг с другом. Враг с врагом. Сохранив первозданную чистоту. Впервые от начала времен — плечом к плечу. Вместе. Черное и белое. Воинства Света и легионы Тьмы. Беспощадные мортиферы и светозарные белларумы, мрачные феррорки и благородные альбасанктусы, зловещие либитинии и вдохновенные кандиды, смертоносные инфернефусы и гневные алакритасы, ощерившиеся бестистраги и полные решимости люкс-дефенсоры… Стена вставала над миром. Готовясь очистить лицо бытия от мерзкой накипи, бурой пены, скопища уродцев, презревших величие идеалов, опозоривших грандиозное противостояние Порядка и Хаоса, Добра и Зла, Тьмы и Света. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2010, 13:40 |
|
||
|
Моделирование связей между сущностями
|
|||
|---|---|---|---|
|
#18+
А может просто использовать...Все вышенаписанное основано на практике использования, это не измышления. Если нужны конкретные примеры, их есть у меня :) А вот есть ли примеры успешного использования ОР-подхода? Честно говоря, сомневаюсь. Дискуссия "о 3-х инсертах" в соседнем топике меня лишний раз в этом убеждает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2010, 14:40 |
|
||
|
Моделирование связей между сущностями
|
|||
|---|---|---|---|
|
#18+
Web-приложение? Интерфейсом прячем недостатки одного, выставляем достоинства другого. Может я чего-то не понимаю, или в каталоге решений партнеров сплошной обман и надувательство? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2010, 16:00 |
|
||
|
Моделирование связей между сущностями
|
|||
|---|---|---|---|
|
#18+
Отличный пример: писать web-приложение можно по-разному. Можно напрямую работать с БД из js-кода, используя возможности CSP, а можно инкапсулировать работу с БД в серверные методы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2010, 16:13 |
|
||
|
Моделирование связей между сущностями
|
|||
|---|---|---|---|
|
#18+
andrew_tcvetsikhДоброго времени суток. Есть вопрос по моделированию связей между сущностями. Каше предоставляет 2 варианта: ... Есть ли преимущества у одного из подхода перед другим? Первый подход Второй подход (пятая характеристика) Для случаев не покрываемых relationship Вы можете явно добавить foreign key . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2010, 16:56 |
|
||
|
Моделирование связей между сущностями
|
|||
|---|---|---|---|
|
#18+
Alexey MaslovА может просто использовать...Все вышенаписанное основано на практике использования, это не измышления. Если нужны конкретные примеры, их есть у меня :) А вот есть ли примеры успешного использования ОР-подхода? Честно говоря, сомневаюсь. Дискуссия "о 3-х инсертах" в соседнем топике меня лишний раз в этом убеждает. Он даже теоретически не может принести облегчения:) Хуже другое: ни в Р, ни в ОО, ни в ОР связи между объектами не поддерживаются: 1) ссылки - это не связи (более того, свойством обекта не может быть другой объект) 2) и, если я правильно понимаю, при использовании Relationship мощность связи М:М не поддерживается:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2010, 17:57 |
|
||
|
Моделирование связей между сущностями
|
|||
|---|---|---|---|
|
#18+
Бредесли я правильно понимаю, при использовании Relationship мощность связи М:М не поддерживается:) Только через третью таблицу... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2010, 19:35 |
|
||
|
Моделирование связей между сущностями
|
|||
|---|---|---|---|
|
#18+
krvsaБредесли я правильно понимаю, при использовании Relationship мощность связи М:М не поддерживается:) Только через третью таблицу... Это и говорит о том, что связи принципиально не поддерживаются (см., например, тему "Зачем нужны связи" в разделе Проектирование БД):) Так что Cache еще очень далеко до объектной СУБД (не в смысле ООП, а в прямом смысле:)). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2010, 18:14 |
|
||
|
Моделирование связей между сущностями
|
|||
|---|---|---|---|
|
#18+
БредТак что Cache еще очень далеко до объектной СУБД (не в смысле ООП, а в прямом смысле:)). Я как-то не очень переживаю по этому поводу... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2010, 18:46 |
|
||
|
Моделирование связей между сущностями
|
|||
|---|---|---|---|
|
#18+
krvsa, спасибо :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2010, 11:45 |
|
||
|
Моделирование связей между сущностями
|
|||
|---|---|---|---|
|
#18+
krvsaБредТак что Cache еще очень далеко до объектной СУБД (не в смысле ООП, а в прямом смысле:)). Я как-то не очень переживаю по этому поводу... Вы же программист, наверное:) Как же Вы можете переживать по поводу того, что у Вас всегда есть работа:) Вот "Р"СУБД и были созданы для того, чтобы дать работу массе программистов. IS пошли этим же путем. Вполне логично:) Жванецкий ясно выразил эту тенденцию, и этот стиль жизни, так сказать: "паровозы для машинистов, магазины для продавщиц, университеты для преподавателей, больницы для врачей". Все правильно:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2010, 19:16 |
|
||
|
Моделирование связей между сущностями
|
|||
|---|---|---|---|
|
#18+
Бред, согласитесь, Cache все-таки шаг вперед. Возможно маленький с точки зрения "правильных" теорий, но вперед. Или Вы хотите послушать, что говорят те самые конечные пользователи (ради которых все и делается) по поводу объектного навигатора? Бред"Р"СУБД и были созданы для того, чтобы дать работу массе программистов О как... Надеюсь, Вы это несерьезно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2010, 19:56 |
|
||
|
Моделирование связей между сущностями
|
|||
|---|---|---|---|
|
#18+
krvsaТолько через третью таблицу... Хм... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2010, 21:02 |
|
||
|
Моделирование связей между сущностями
|
|||
|---|---|---|---|
|
#18+
doublefintХм... И чего ты с этим "Хм" дальше будешь делать? Какую например задачу решать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2010, 21:23 |
|
||
|
Моделирование связей между сущностями
|
|||
|---|---|---|---|
|
#18+
krvsa, задачу реализации отношения многие ко многим не только через третью таблицу ;) Например, сделать на Cache объектную БД, в которой будут "правильные" отношения между "объектами". А "хм.." будет уровнем реализации, скрытый от пользователя интерфейсом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2010, 23:49 |
|
||
|
Моделирование связей между сущностями
|
|||
|---|---|---|---|
|
#18+
doublefintзадачу реализации отношения многие ко многим не только через третью таблицу ;) Вот только реализацию "чего" ты сделал? Имеется ввиду в практическом плане... Или пример придумать уже не хватает сил? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2010, 08:43 |
|
||
|
Моделирование связей между сущностями
|
|||
|---|---|---|---|
|
#18+
реализация "авторы - книги" не подойдет ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2010, 09:30 |
|
||
|
Моделирование связей между сущностями
|
|||
|---|---|---|---|
|
#18+
krvsa. Не, ну так не пойдет. Я же привел пример. Или прочитать "уже не хватает сил". Два "Объекта" связанных "отношением" многие-ко-многим. Вы хотите сказать, что это не будет работать или этим нельзя пользоваться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2010, 09:31 |
|
||
|
Моделирование связей между сущностями
|
|||
|---|---|---|---|
|
#18+
doublefintэтим нельзя пользоваться?Именно. Представьте, что это авторы-книги. У 1 автора м.б. несколько книг. У 1 книги - несколько авторов. Пока все хорошо :) Но вот вы решили удалить из БД книгу (ошибочно введенную, например, да мало ли по какой причине). Как вы это сделаете? Не удалив всех ее авторов, вы книгу не удалите. Введя промежуточный объект (e.g. "авторство"), связанный с книгой и с автором отношениями 1:M, мы эту проблему снимаем. Если продолжать использовать Relationship, то удаление книги потребует предварительного удаление всех дочерних "авторств" - но не авторов. Сторонники "чисто объектного" подхода хотели бы, чтобы связь выступала как отдельная сущность (хотя и нехорошо так ее называть :), которая может иметь атрибуты и т.д. Но мне кажется, что это не принципиально - нагрузить атрибутами промежуточный объект (таблицу), или саму связь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2010, 10:07 |
|
||
|
Моделирование связей между сущностями
|
|||
|---|---|---|---|
|
#18+
2acidреализация "авторы - книги" не подойдет ? Для практического применения - нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2010, 10:27 |
|
||
|
Моделирование связей между сущностями
|
|||
|---|---|---|---|
|
#18+
doublefintДва "Объекта" связанных "отношением" многие-ко-многим. "многие-ко-многим" тоже нужно взять в кавычки... doublefintВы хотите сказать, что это не будет работать или этим нельзя пользоваться? Вот про использование и хочется от тебя примеры услышать. Сам-то пока так и не могу придумать где такое применить можно на практике. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2010, 10:31 |
|
||
|
|

start [/forum/topic.php?fid=39&msg=36554486&tid=1558137]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
24ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 212ms |
| total: | 323ms |

| 0 / 0 |
