Предложение по датировке объектов
-
- Сообщения: 1069
- Зарегистрирован: 27 ноя 2005, 18:57
- Откуда: Москва
Предложение по датировке объектов
Уважаемые коллеги! Во-первых, всех с праздником Христова Воскресения. Во-вторых, хотел бы вынести на обсуждение предложение по датировкам храмов. Разговор об этом уже был, решения не найдено, у меня по размышлении возникла новая идея.
Проблема
Проблема всем известна. Типичный случай: церковь построена во второй половине 17 века, а колокольня, скажем, в 1883 году. Сейчас приходится либо вовсе забывать про колокольню, указывая что-то вроде 1650-1700, либо же брать период целиком: 1650-1883. В первом случае колокольня не находится по поиску объектов XIX века, во втором случае объект попадает в поиск по 18 веку, к которому он не имеет ни малейшего отношения. И то и другое печально. Вывод очевиден: начальной и конечной даты для времени постройки недостаточно.
Проект решения
Я предлагаю поступить следующим образом. Для датировки использовать два поля: первое условно называется "Дата постройки". В нем в свободной форме указываются даты. Например, "вторая половина XVII века, колокольня - 1883 г.". Это поле не используется для поиска.
Второе поле условно назову "Шкала постройки". Это действительно одно поле, но оно предстает в виде таблицы, примерно такой:
Сразу оговорюсь, что набор столбцов пока приблизительный. Мне кажется, однако, что деление менее чем на четверть века не нужно, так как тогда шкала чересчур усложнится, а смысла в нем мало.
Нижняя строка таблицы - это набор флажков, в которых можно ставить галочки, в нашем случае - вот так:
Такая же шкала используется в форме поиска. Например, если нам нужно найти объекты конца XIX - начала XX века, то в поисковом запросе указываем:
Объект находится, так как есть совпадение по одному столбцу. А вот в поиск по 18 веку объект не попадает. Чего, собственно, и хотелось.
Техническая сторона (читать необязательно ) )
Предлагаемый способ основан на побитовом сравнении, что обеспечивает очень быстрый поиск. Шкала переводится в биты, в нашем примере шкала объекта имеет форму двоичного числа 110000000100000, то есть десятичное 24608. Так что это, действительно, одно поле, причем довольно компактное. Запрос имеет форму 110000, то есть 48. Используемая в проекте СУБД позволяет производить побитовое сравнение. Побитовая операция "И" выдает положительный результат при совпадении хотя бы одной позиции со значением 1 (то есть совпадение галочек хотя бы в одном столбце шкалы поискового запроса и шкалы объекта).
Преимущества
1. Структура базы данных практически не изменяется. Никаких новых таблиц и связей. Ограниченный объем допрограммирования.
2. Шкалу исключительно быстро заполнять. Достаточно несколько раз щелкнуть мышкой. Это преимущество я считаю исключительно важным.
3. Поиск очень быстрый.
4. На основе существующих сейчас дат постройки можно автоматически заполнить как поле "Шкала", так и свободное поле "Дата постройки", так что никакого тотального ручного переноса не будет.
Недостатки
Недостаток один и вполне очевидный: невозможность поиска по более мелким периодам, чем указаны в шкале. Но я думаю, что достоинства перевешивают.
Жду отзывов.
Проблема
Проблема всем известна. Типичный случай: церковь построена во второй половине 17 века, а колокольня, скажем, в 1883 году. Сейчас приходится либо вовсе забывать про колокольню, указывая что-то вроде 1650-1700, либо же брать период целиком: 1650-1883. В первом случае колокольня не находится по поиску объектов XIX века, во втором случае объект попадает в поиск по 18 веку, к которому он не имеет ни малейшего отношения. И то и другое печально. Вывод очевиден: начальной и конечной даты для времени постройки недостаточно.
Проект решения
Я предлагаю поступить следующим образом. Для датировки использовать два поля: первое условно называется "Дата постройки". В нем в свободной форме указываются даты. Например, "вторая половина XVII века, колокольня - 1883 г.". Это поле не используется для поиска.
Второе поле условно назову "Шкала постройки". Это действительно одно поле, но оно предстает в виде таблицы, примерно такой:
Сразу оговорюсь, что набор столбцов пока приблизительный. Мне кажется, однако, что деление менее чем на четверть века не нужно, так как тогда шкала чересчур усложнится, а смысла в нем мало.
Нижняя строка таблицы - это набор флажков, в которых можно ставить галочки, в нашем случае - вот так:
Такая же шкала используется в форме поиска. Например, если нам нужно найти объекты конца XIX - начала XX века, то в поисковом запросе указываем:
Объект находится, так как есть совпадение по одному столбцу. А вот в поиск по 18 веку объект не попадает. Чего, собственно, и хотелось.
Техническая сторона (читать необязательно ) )
Предлагаемый способ основан на побитовом сравнении, что обеспечивает очень быстрый поиск. Шкала переводится в биты, в нашем примере шкала объекта имеет форму двоичного числа 110000000100000, то есть десятичное 24608. Так что это, действительно, одно поле, причем довольно компактное. Запрос имеет форму 110000, то есть 48. Используемая в проекте СУБД позволяет производить побитовое сравнение. Побитовая операция "И" выдает положительный результат при совпадении хотя бы одной позиции со значением 1 (то есть совпадение галочек хотя бы в одном столбце шкалы поискового запроса и шкалы объекта).
Преимущества
1. Структура базы данных практически не изменяется. Никаких новых таблиц и связей. Ограниченный объем допрограммирования.
2. Шкалу исключительно быстро заполнять. Достаточно несколько раз щелкнуть мышкой. Это преимущество я считаю исключительно важным.
3. Поиск очень быстрый.
4. На основе существующих сейчас дат постройки можно автоматически заполнить как поле "Шкала", так и свободное поле "Дата постройки", так что никакого тотального ручного переноса не будет.
Недостатки
Недостаток один и вполне очевидный: невозможность поиска по более мелким периодам, чем указаны в шкале. Но я думаю, что достоинства перевешивают.
Жду отзывов.
-
- Модератор
- Сообщения: 7819
- Зарегистрирован: 10 май 2004, 10:42
- Откуда: г.Владимир
- Контактная информация:
Re: Предложение по датировке объектов
Отзывы положительные, добавить бы галок сразу на весь век одновременно.
Последний раз редактировалось Олег Щёлоков 20 апр 2009, 18:28, всего редактировалось 1 раз.
- Василий Шелёмин
- Модератор
- Сообщения: 4635
- Зарегистрирован: 30 июл 2004, 15:53
- Откуда: Санкт-Петербург
- Контактная информация:
Re: Предложение по датировке объектов
Игорь - да!, и к пожеланию Олега тоже присоединяюсь.
- uchazdneg
- Модератор
- Сообщения: 2864
- Зарегистрирован: 16 мар 2008, 00:38
- Откуда: N-37-II
- Контактная информация:
Re: Предложение по датировке объектов
Поддерживаю!!
Re: Предложение по датировке объектов
Прекрасный выход из положения. Думаю, надо принимать. А то очень давно у нас косяки с датами и никакого движения вперед.
Игорь, спасибо за классное предложение!
Игорь, спасибо за классное предложение!
- Н. и Е. Андрущенко
- Сообщения: 961
- Зарегистрирован: 16 окт 2007, 22:52
- Откуда: г. Северодвинск
- Контактная информация:
Re: Предложение по датировке объектов
Так а если годы точно известен? Это ведь не столь редкий случай даже для XVII в. И эта информация в таком случае вообще пропадает.
Re: Предложение по датировке объектов
Если год точно известен, то он и указывается.
А поиск идет по четвертям века.
А поиск идет по четвертям века.
-
- Сообщения: 1069
- Зарегистрирован: 27 ноя 2005, 18:57
- Откуда: Москва
Re: Предложение по датировке объектов
Да, год указывается в другом поле, причем в свободной форме. То есть можно указать что-нибудь такое:
1673 (по другим источникам - 1667)
1670-1673 (освящение), 1678 (завершение отделки)
1673 (согласно И.И. Иванову), 1679 (по данным прихода)
и т.п.
Думаю даже, что в случае поиска по дате, в результатах поиска эта информация должна появляться, чтобы облегчить жизнь пользователю.
1673 (по другим источникам - 1667)
1670-1673 (освящение), 1678 (завершение отделки)
1673 (согласно И.И. Иванову), 1679 (по данным прихода)
и т.п.
Думаю даже, что в случае поиска по дате, в результатах поиска эта информация должна появляться, чтобы облегчить жизнь пользователю.
Предложение по датировке объектов
да уже перетирался этот вопрос в разделе про сайт.
Давно пора.
Но старшие чего-то ждут.
а народ пока изгаляется как может, 3 страницы тем уже...
ИМХА чем позже разгребать всё это, тем сложнее.
Давно пора.
Но старшие чего-то ждут.
а народ пока изгаляется как может, 3 страницы тем уже...
ИМХА чем позже разгребать всё это, тем сложнее.
- Павел @sobory.ru
- Модератор
- Сообщения: 4798
- Зарегистрирован: 04 апр 2004, 22:00
- Контактная информация:
Re: Предложение по датировке объектов
Поднимаю тему наверх, вопрос становится приоритетным.
Реализовано будет в кратчайшие сроки так, как предложено в этой теме. Если есть дополнительные соображения, самое время их высказать.
Реализовано будет в кратчайшие сроки так, как предложено в этой теме. Если есть дополнительные соображения, самое время их высказать.