> >>> 4. Возможность сразу без допилов получать репорты по связанным > >>> данным. Т.е. груши любят: Петя, Вася, Таня ; Петя любит: яблоки, груши, > Таню. > > >> Вроде бы нашел, что искал - GNU recutils. > > > В каком смысле? Там нет ничего, что можно было назвать «поддержкой > > структур многие-ко-многим». > > Я сильно подозреваю, что в том же смысле, что у обычных реляционных баз, > которые тоже специальной поддержки для них не имеют. Джойны-то есть... > > Хотя если говорить о человеко-читаемом формате, то оно бы должно уметь > из > > Имя: Петя > Любит: яблоки, груши, Таню > > Название: груши > Любят: Вася, Таня
Конкретно в rec прямо запрещены нелатинские имена. > делать вывод, что груши любят Петя, Вася, и Таня. Я же таки первым делом, как вопрос прочел, пошел проверять не научились ли в такое GNU Recutils. :-) Посмотрел — нет. Плохо искал? А допилить-то, конечно, несложно, но товарищ просил готовое. > Опыт программирования > на рельсах даже подсказывает нам, что для этого достаточно выдать движку > метаинформацию о том, что "любит" и "любят" - два имени одной связи в > противоположных направлениях. Дык я про то и говорю, что не предусмотрено в формате rec такой метаинформации. Соответсвенно и recsel(1)’у нельзя дать такого приказа. Ему вообще сейчас нельзя дать приказа типа: $ recsel -e 'name = "Вася"' -P likes -e 'liked_by = "Вася"' -P name Только в два прохода: $ recsel -e 'name = "Вася"' -P likes $ recsel -e 'liked_by = "Вася"' -P name Что, конечно, безобразие.