[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Минималистичный инструмент для организации хранения структуры данных "многие ко многим"



>  >>>     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

Что, конечно, безобразие.

Reply to: