Страница 1 из 1

Предложение по датировке объектов

Добавлено: 19 апр 2009, 22:20
Игорь Демин
Уважаемые коллеги! Во-первых, всех с праздником Христова Воскресения. Во-вторых, хотел бы вынести на обсуждение предложение по датировкам храмов. Разговор об этом уже был, решения не найдено, у меня по размышлении возникла новая идея.

Проблема

Проблема всем известна. Типичный случай: церковь построена во второй половине 17 века, а колокольня, скажем, в 1883 году. Сейчас приходится либо вовсе забывать про колокольню, указывая что-то вроде 1650-1700, либо же брать период целиком: 1650-1883. В первом случае колокольня не находится по поиску объектов XIX века, во втором случае объект попадает в поиск по 18 веку, к которому он не имеет ни малейшего отношения. И то и другое печально. Вывод очевиден: начальной и конечной даты для времени постройки недостаточно.

Проект решения

Я предлагаю поступить следующим образом. Для датировки использовать два поля: первое условно называется "Дата постройки". В нем в свободной форме указываются даты. Например, "вторая половина XVII века, колокольня - 1883 г.". Это поле не используется для поиска.

Второе поле условно назову "Шкала постройки". Это действительно одно поле, но оно предстает в виде таблицы, примерно такой:
Изображение

Сразу оговорюсь, что набор столбцов пока приблизительный. Мне кажется, однако, что деление менее чем на четверть века не нужно, так как тогда шкала чересчур усложнится, а смысла в нем мало.

Нижняя строка таблицы - это набор флажков, в которых можно ставить галочки, в нашем случае - вот так:
Изображение

Такая же шкала используется в форме поиска. Например, если нам нужно найти объекты конца XIX - начала XX века, то в поисковом запросе указываем:
Изображение

Объект находится, так как есть совпадение по одному столбцу. А вот в поиск по 18 веку объект не попадает. Чего, собственно, и хотелось.

Техническая сторона (читать необязательно ) )

Предлагаемый способ основан на побитовом сравнении, что обеспечивает очень быстрый поиск. Шкала переводится в биты, в нашем примере шкала объекта имеет форму двоичного числа 110000000100000, то есть десятичное 24608. Так что это, действительно, одно поле, причем довольно компактное. Запрос имеет форму 110000, то есть 48. Используемая в проекте СУБД позволяет производить побитовое сравнение. Побитовая операция "И" выдает положительный результат при совпадении хотя бы одной позиции со значением 1 (то есть совпадение галочек хотя бы в одном столбце шкалы поискового запроса и шкалы объекта).

Преимущества

1. Структура базы данных практически не изменяется. Никаких новых таблиц и связей. Ограниченный объем допрограммирования.

2. Шкалу исключительно быстро заполнять. Достаточно несколько раз щелкнуть мышкой. Это преимущество я считаю исключительно важным.

3. Поиск очень быстрый.

4. На основе существующих сейчас дат постройки можно автоматически заполнить как поле "Шкала", так и свободное поле "Дата постройки", так что никакого тотального ручного переноса не будет.

Недостатки

Недостаток один и вполне очевидный: невозможность поиска по более мелким периодам, чем указаны в шкале. Но я думаю, что достоинства перевешивают.

Жду отзывов.

Re: Предложение по датировке объектов

Добавлено: 20 апр 2009, 11:58
Олег Щёлоков
Отзывы положительные, добавить бы галок сразу на весь век одновременно.

Re: Предложение по датировке объектов

Добавлено: 20 апр 2009, 13:43
Василий Шелёмин
Игорь - да!, и к пожеланию Олега тоже присоединяюсь.

Re: Предложение по датировке объектов

Добавлено: 21 апр 2009, 17:53
uchazdneg
Поддерживаю!!

Re: Предложение по датировке объектов

Добавлено: 24 апр 2009, 17:52
etienne
Прекрасный выход из положения. Думаю, надо принимать. А то очень давно у нас косяки с датами и никакого движения вперед.
Игорь, спасибо за классное предложение!

Re: Предложение по датировке объектов

Добавлено: 26 апр 2009, 15:28
Н. и Е. Андрущенко
Так а если годы точно известен? Это ведь не столь редкий случай даже для XVII в. И эта информация в таком случае вообще пропадает.

Re: Предложение по датировке объектов

Добавлено: 27 апр 2009, 00:53
etienne
Если год точно известен, то он и указывается.
А поиск идет по четвертям века.

Re: Предложение по датировке объектов

Добавлено: 28 апр 2009, 02:34
Игорь Демин
Да, год указывается в другом поле, причем в свободной форме. То есть можно указать что-нибудь такое:

1673 (по другим источникам - 1667)

1670-1673 (освящение), 1678 (завершение отделки)

1673 (согласно И.И. Иванову), 1679 (по данным прихода)


и т.п.

Думаю даже, что в случае поиска по дате, в результатах поиска эта информация должна появляться, чтобы облегчить жизнь пользователю.

Предложение по датировке объектов

Добавлено: 01 июн 2009, 21:22
Starsbest
да уже перетирался этот вопрос в разделе про сайт.
Давно пора.
Но старшие чего-то ждут.
а народ пока изгаляется как может, 3 страницы тем уже...
ИМХА чем позже разгребать всё это, тем сложнее.

Re: Предложение по датировке объектов

Добавлено: 10 дек 2010, 08:43
Павел @sobory.ru
Поднимаю тему наверх, вопрос становится приоритетным.
Реализовано будет в кратчайшие сроки так, как предложено в этой теме. Если есть дополнительные соображения, самое время их высказать.