Начало реализации

10.11.2011. Ханов О.А., письмо С.О.
Сделал из базы 10 текстовых файлов:
Фотографии
1. phbas.txt - индекс фото/файл фото/дата/название объекта фото/индекс объекта (список фото)
2. phmanbas.txt - индекс фото/ФИО/индекс ФИО (люди на фото)
3. wrdph.txt - индекс фото/слово/индекс слова (список тэгов фото)
Люди
4. mans.txt - индекс ФИО/м-ж/дата рождения/место рождения/индекс места/место проживания/индес места/дата смерти
5. sinfio.txt - индекс ФИО/ФИО/синоним (список синонимов имен)
Объекты
6. objbas.txt - индекс объекта/название объекта/название объекта более высокого уровня/индекс/группа/индекс группы
7. sinobj.txt - индекс объекта/название/синоним (список синонимов названий объектов)
Родственники
8. fambas.txt - индекс ФИО/ФИО/родственные отношения/ФИО родственника/индекс родственника
Тэги
9. wrdbas.txt - индекс слова/слово/группа/индекс группы/слово следующего уровня/индекс
Списки
10. spsbas.txt - индекс и название списка/участие (должность)/ФИО/индекс ФИО

Тексты оставил в стороне, это еще 2-3 файла.
Над формой не очень работал, - можно сделать любую.

Посмотрел на файлы и огорчился - много. Причем, это необходимый минимум.

14.11.2011 С.О.
Есть такое предложение.
Я могу написать прогу, которая будет:
1. Создавать БД MySQL на основе текстового описания
2. Заполнять ее содержимое из текстового файла.

Например, текст в конфигурации:
objbas= name 50
objbas= hostobj 1
objbas= grup 1

будет создавать таблицу objbas с полями:
1. id (обязательный индекс)
2. name тип CHAR размером 50 символов
3. hostobj тип INTEGER
4. grup тип INTEGER

Файл заполнения:
имя файла - база назначения, индекс/поле/значение.
к примеру, имя файла objbas.txt, содержимое
158 name=Петербург
158 group=18
22 name=лен. Область
число = ID, если такой есть, поля модифицируются, если нет - добавляются.
Это интересно?
Так ты сможешь перенести свою базу в MySQL в любом виде (названия полей, разметки, наполнения и т.п.). Дальше можно будет заниматься только "мордой" и непосредственно выборками.

Пока разбираюсь с 2-я базами - имена и объекты.
Вопрос:
1. место рождения/индекс места/ место проживания/индекс места
2. индекс объекта/название объекта/название объекта более высокого уровня/индекс/группа/индекс группы

Избыточно в плане индексов. Почему не сделать справочник объектов и просто ссылаться на них?
Есть подозрение, что вначале ты сохраняешь рукописный текст в поле, а дальше определяешь его принадлежность к объекту и вписываешь индекс. Это порождает тысячу тавтологичных конструкций типа "Петербург = 33".
Ну не знаю. Это подход не "базовый".
Если отказаться от текста, файл будет нечитаем. Но, с другой стороны, сам по себе он ни о чем не говорит, поэтому его читаемость не добавляет ему никаких новых свойств.
Т.е., например, базу объектов можно ужать до индекс объекта/название объекта/индекс объекта более высокого уровня/индекс группы
Или это что-то другое?

15.11.2011. Ханов О.А.
Нет возражений, по всем пунктам соглашаюсь.
Пояснения к файлам.
Я вывел все так, как есть.
Форма - не догма. hostobj и grup - поля м.б. не нужные.
Мне показалось, что если объект незнакомый и будет желание уточнить, то этому поможет поле "Объект более высокого уровня".
Поле "Группа" тоже ввел на всякий случай - м.б. удобно будет заходить с этой стороны - например, "Города".

Есть еще один мотив (интуитивный и глобальный) - первично понятие, слово. Далее идет раскрутка от общего к частному, в качестве которого может быть фото, текст, люди... - все, что угодно. В голове у меня сидит база-клубок, в который можно заходить откуда угодно и придти в любое место. Можно рассмотривать мелкие подробности или окинуть взглядом "с высоты птичьего полета". Т.е. хочу сделать визуальную и текстовую копию "окружающего мира", существовавшего в разное время - с той подробностью, какая получится. Фотографии и воспоминания бьют в эту тему. Но это уже из области фантазий и не очень формализованных намерений.

Одно из полей индекс/имя, конечно, лишнее. Я сделал так потому, что отдельно, вручную, определял hostobj и grup, и при этой (допотопной) технологии так было удобнее - вручную писал слово, а программа находила или присваивала индекс. В базе (если поля не исчезнут) это уже будут запросы.

Файл объектов (как и все остальное) у меня формировала программа из записей к фотографиям и из размеченных текстов. Но бывало и так, что я сам добавлял в нее новые объекты до обработки фотографий. Для пользователя такая работа была бы дополнительной нагрузкой. Мне кажется, поля hostobj и grup можно оставить как факультативные, заполняемые по желанию, или администратором, или - что получится, - программой.

БД MySQL на основе текстового описания - это хорошо. Но сам текстовый файл (например, объектов) - это тоже результат работы одной из программ, выдергивающей поле из первичного описания и дающей ему индекс.

Разночтения в исходных описаниях я устранял, пропуская при индекации введенное имя через словарь синонимов (для объектов это sinobj.txt). После однократного ввода синонима можно уже не вспоминать "как надо правильно вводить". Конечно, в базе крутится только основное имя, которое соответствует индексу. Разные написания остаются только на входе. Оставлять их или исправлять в первичных описаниях фотографий - как получится (мне было безразлично, и я оставил).

15.11.2011. Ханов О.А. Письмо Сергею Ханову
Звонил сегодня Юрий Федорович. Есть у него желание повторить опыт А.Кайданова. Здесь наши цели совпадают. Он активно и (как всегда) подробно изучает вопрос.

/Ранее ЮФ пытался всерьез заняться монтажом видеоматериалов /
В начало