Покинул форум
Сообщений всего: 521
Дата рег-ции: Сент. 2009 Откуда: Петроград
Помог: 10 раз(а)
Всем доброго времени дня
суть задачи такая:
в системе много объектов которые имеют связи между собой
Пример
объекты A, B, C, D
A связан с B и С
В связан с А и D
С связан с A и D
D связан с B и C
уже здесь видно что у нас произошло дублирование данных при описании.
По сути надо выделить таблицу связей в "нормализованной" форме
например так
Казалось бы все связи описаны, но возникает проблема навигации и быстрого поиска.
Как для известного объекта узнать все его связи?
Если для объекта A ответом является массив $links[$A], то для объекта $D придется перебирать все.
Покинул форум
Сообщений всего: 521
Дата рег-ции: Сент. 2009 Откуда: Петроград
Помог: 10 раз(а)
Мешает избыточность и необходимость париться с поддержкой целостности.
Сам подумываю о таком варианте на базе trait (нужен 5.4)
Примешивать связь к объектам. Но ... надеюсь что есть что то более красивое и менее громозткое
AdMeen
Отправлено: 28 Марта, 2012 - 13:36:10
Посетитель
Покинул форум
Сообщений всего: 370
Дата рег-ции: Сент. 2009 Откуда: Воронеж
Помог: 1 раз(а)
eai пишет:
Мешает избыточность и необходимость париться с поддержкой целостности.
Избыточность? Целостность? Тогда используйте для задач подходящие инструменты, где за всем этим будут следить за вас. На данный момент вы пытаетесь ломом лужу вычерпать.
eai
Отправлено: 28 Марта, 2012 - 13:42:45
Частый посетитель
Покинул форум
Сообщений всего: 521
Дата рег-ции: Сент. 2009 Откуда: Петроград
Помог: 10 раз(а)
[quote=AdMeen]
eai пишет:
Тогда используйте для задач подходящие инструменты, где за всем этим будут следить за вас. На данный момент вы пытаетесь ломом лужу вычерпать.
А что так грубо то?
AdMeen
Отправлено: 28 Марта, 2012 - 13:46:09
Посетитель
Покинул форум
Сообщений всего: 370
Дата рег-ции: Сент. 2009 Откуда: Воронеж
Помог: 1 раз(а)
eai пишет:
Тогда используйте для задач подходящие инструменты, где за всем этим будут следить за вас. На данный момент вы пытаетесь ломом лужу вычерпать.
А что так грубо то?[/quote]
Извиняюсь, если в моем посте увидели грубость.
Просто не стоит выдумывать очередной велосипед
EuGen
Отправлено: 28 Марта, 2012 - 15:48:06
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
eai
Отправлено: 28 Марта, 2012 - 15:58:12
Частый посетитель
Покинул форум
Сообщений всего: 521
Дата рег-ции: Сент. 2009 Откуда: Петроград
Помог: 10 раз(а)
Евгений, это специально для меня написали или у вас уже было?
P.S.
Я примерно тому же склонялся но не люблю интерфейсы поэтому думал про traits
EuGen
Отправлено: 28 Марта, 2012 - 16:00:56
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
Нет, не было. Написано для этой задачи.
Разумнее, чем хранить список связей для каждого объекта в нем самом - я не вижу решения. А чтобы не было трудностей с контролем целостности, я считаю уместнее всего поручить эту проблему реализации (что и было сделано).
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
eai
Отправлено: 28 Марта, 2012 - 16:12:48
Частый посетитель
Покинул форум
Сообщений всего: 521
Дата рег-ции: Сент. 2009 Откуда: Петроград
Помог: 10 раз(а)
Ох и не лень вам было ...
За открывающуюся скобку с новой строки особый респект
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.