Уведомления

Группа в Telegram: @pythonsu

#1 Март 17, 2013 17:18:42

Pluto
Зарегистрирован: 2012-05-29
Сообщения: 177
Репутация: +  2  -
Профиль   Отправить e-mail  

БД и справочники для БД. Как эти справочники хранить?

Моя программа при запуске проверяет наличие файла БД (SQLite) по определённому пути и при его отсутствии создаёт новую БД. Создание таблиц в БД (CREATE TABLE…) прописано в тексте программы. Но в данной БД будут нужны не только те таблицы, которые будет заполнять пользователь, но и таблицы-справочники, которые пользователем изменяться не будут; к примеру, допустим, таблица профессий.

Как-то мне кажется, что создавать структуру таблиц-справочников в программе и оттуда же, из текста программы, их заполнять посредством INSERT INTO table1 (id_prof, prof_name) VALUES (1, “водитель”) и т.д., это что-то не то.

А как по уму-то это сделать?
Справочники хранить в каких-нибудь CSV, XML, просто TXT файлах и подгружать их в БД при каждом старте программы? А для редактирования этих справочников ещё одну программку рисовать?


Создать отдельную БД, в которой посредством какой-нибудь Sqliteman создать эти таблицы-справочники? А как их потом объединять с таблицами из основной БД? Ведь таблицы пользователя должны быть связаны с таблицами-справочниками.

Офлайн

#2 Март 17, 2013 17:59:46

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

БД и справочники для БД. Как эти справочники хранить?

Можно хранить прямо в тексте, в виде мультистрок. При создании БД распарсивать их содержимое.

Офлайн

#3 Март 17, 2013 18:37:05

Pluto
Зарегистрирован: 2012-05-29
Сообщения: 177
Репутация: +  2  -
Профиль   Отправить e-mail  

БД и справочники для БД. Как эти справочники хранить?

Что есть мультистрока? Что значит “распарсивать”?
А если справочник нужно обновить (добавить строки), лезть для этого в код программы?

Забыл добавить, я не профессиональный программист, я программист-любитель: глубокими знаниями в программировании не обладаю.

Отредактировано Pluto (Март 17, 2013 18:38:28)

Офлайн

#4 Март 17, 2013 19:09:46

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

БД и справочники для БД. Как эти справочники хранить?

Я подобные данные содержал в отдельном модуле, где они не смешивались ни с чем другим и легко поддавались правке (уж полегче чем xml)

somedata='''one two three
four five six''' #это мультистрока
Оттуда они импортировались и, например, заносились в БД
for r in somedata.split('\n'):
    MyInsert(r.strip().split(' '))
Это далеко не единственный возможный подход.

Офлайн

#5 Март 17, 2013 19:36:28

reclosedev
От: Н.Новгород
Зарегистрирован: 2012-03-29
Сообщения: 870
Репутация: +  173  -
Профиль   Отправить e-mail  

БД и справочники для БД. Как эти справочники хранить?

Pluto
А как их потом объединять с таблицами из основной БД?
http://www.sqlite.org/lang_attach.html

А по поводу как хранить и в чем редактировать, это от сценариев использования и потенциальных пользователей зависит.

Офлайн

#6 Март 17, 2013 21:09:10

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

БД и справочники для БД. Как эти справочники хранить?

Pluto
А как по уму-то это сделать?
Базы данных это плод труда множества людей, и один раз создав их дальше холят и причесывают многие годы. Не стоит рассчитывать что база у вас будет 100 раз на дню создаваться.



Офлайн

#7 Март 18, 2013 17:02:40

Pluto
Зарегистрирован: 2012-05-29
Сообщения: 177
Репутация: +  2  -
Профиль   Отправить e-mail  

БД и справочники для БД. Как эти справочники хранить?

doza_and
Базы данных это плод труда множества людей
В моём случае моя БД - это плод моего же труда.
И что значит, база не будет сто раз на дню создаваться? К чему эта фраза?


Shaman
Это далеко не единственный возможный подход.
А какие ещё-то есть?

Мне пока что вариант с ATTACH DATABASE видится самым простым и приемлемым. В этом случае я могу оперативно добавлять/изменять/модифицировать данные в справочниках посредством какой-нибудь программы для работы с БД SQLite. Хоть всё той же Sqliteman.
—–
Я вообще привык к досовому фокспро. Там я могу связать любую dbf-таблицу из любого места на диске с любой другой dbf-таблицей из не менее любого места на диске.

Офлайн

#8 Март 18, 2013 21:30:14

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

БД и справочники для БД. Как эти справочники хранить?

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



Офлайн

#9 Март 20, 2013 16:51:45

Pluto
Зарегистрирован: 2012-05-29
Сообщения: 177
Репутация: +  2  -
Профиль   Отправить e-mail  

БД и справочники для БД. Как эти справочники хранить?

doza_and
Прям конспирация какая-то…

Зачем же мне исходники справочников удалять?
А если мне понадобится установить экземпляр программы на другом компьютере?

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version