|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Valentin Nechayev 2:5020/400 18 Dec 2002 14:37:34 To : Andrew Martovlos Subject : Re: Программирование б аз данных DBM... -------------------------------------------------------------------------------- >>> Andrew Martovlos wrote: AM> Как наиболее оптимально, и правильно перевести таблицу с MySQL AM> вида: AM> ID Surname Firstname Birth AM> -------------------------- AM> 1 Петров Петр 1980 AM> 2 Семенов Семен 1982 AM> .. AM> .. в BerkeleyDB? AM> Как я должен туда записать такую таблицу, если в DMB можно пользоваться AM> только даными вида 'ключ'='значение'? Определи цель таблицы. Кто будет и _как_ будет читать эту таблицу? Последовательно? По группам параметров? По фамилиям? По именам? По датам рождения? От этого методы хранения _очень_ зависят. (Hе веришь - посмотри формат базы RPM - чего только не придумают, чтобы место сэкономить и SQL'ями не пользоваться...;)) Можно так, как ты описал - Surname.1 и так далее. Можно целыми структурами. Можно записями переменной длины гибкого формата. Можно добавлять индексы, можно не добавлять. AM> Key = Value AM> ------------------ AM> Surname.1 = Петров AM> Firstname.1 = Петр AM> Birth.1 = 1980 AM> Surname.2 = Семенов AM> Firstname.2 = Семен AM> Birth.2 = 1982 AM> Это правильно? Или это должно быть как-то по другому? AM> А как же тогда делать поиск по фамилии, например? Индекс по фамилии добавить. Сымитировав тем самым работу подложки того же MySQL собственными силами ;)) Сделай, например, жесткую структуру с данными, ключ к ней - recno (с префиксом, например, это будет "R000001", "R000002" и так далее). И ключи индексов (например, "IS Петров" = 1, "IS Семенов" = 2). Hадо искать по фамилии - дописываешь "IS" спереди, делаешь get, получаешь recno записи. Делаешь get от "R" плюс текстового представления recno, получаешь всю запись. Повторяю, что этим ты эмулируешь нижний уровень движка SQL сервера. Стоило ли уходить с него? ;)) -netch- --- ifmail v.2.15dev5 * Origin: Dark side of coredump (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/11645b1f3bf3d.html, оценка из 5, голосов 10
|