Форум сайта python.su
Моя программа при запуске проверяет наличие файла БД (SQLite) по определённому пути и при его отсутствии создаёт новую БД. Создание таблиц в БД (CREATE TABLE…) прописано в тексте программы. Но в данной БД будут нужны не только те таблицы, которые будет заполнять пользователь, но и таблицы-справочники, которые пользователем изменяться не будут; к примеру, допустим, таблица профессий.
Как-то мне кажется, что создавать структуру таблиц-справочников в программе и оттуда же, из текста программы, их заполнять посредством INSERT INTO table1 (id_prof, prof_name) VALUES (1, “водитель”) и т.д., это что-то не то.
А как по уму-то это сделать?
Справочники хранить в каких-нибудь CSV, XML, просто TXT файлах и подгружать их в БД при каждом старте программы? А для редактирования этих справочников ещё одну программку рисовать?
Создать отдельную БД, в которой посредством какой-нибудь Sqliteman создать эти таблицы-справочники? А как их потом объединять с таблицами из основной БД? Ведь таблицы пользователя должны быть связаны с таблицами-справочниками.
Офлайн
Можно хранить прямо в тексте, в виде мультистрок. При создании БД распарсивать их содержимое.
Офлайн
Что есть мультистрока? Что значит “распарсивать”?
А если справочник нужно обновить (добавить строки), лезть для этого в код программы?
Забыл добавить, я не профессиональный программист, я программист-любитель: глубокими знаниями в программировании не обладаю.
Отредактировано Pluto (Март 17, 2013 18:38:28)
Офлайн
Я подобные данные содержал в отдельном модуле, где они не смешивались ни с чем другим и легко поддавались правке (уж полегче чем xml)
somedata='''one two three four five six''' #это мультистрока
for r in somedata.split('\n'): MyInsert(r.strip().split(' '))
Офлайн
Plutohttp://www.sqlite.org/lang_attach.html
А как их потом объединять с таблицами из основной БД?
Офлайн
PlutoБазы данных это плод труда множества людей, и один раз создав их дальше холят и причесывают многие годы. Не стоит рассчитывать что база у вас будет 100 раз на дню создаваться.
А как по уму-то это сделать?
Офлайн
doza_andВ моём случае моя БД - это плод моего же труда.
Базы данных это плод труда множества людей
ShamanА какие ещё-то есть?
Это далеко не единственный возможный подход.
Офлайн
PlutoЯ считаю правильным один раз специальным скриптом импортировать ваши справочники, в базу. Скрипт стереть, исходники справочников тоже. Дальше пользоваться только справочниками из базы.
К чему эта фраза?
Офлайн
doza_andПрям конспирация какая-то…
Офлайн