Как/где лучше создать базу данных

Автор Георгий_, 3 августа 2022, 08:29

0 Пользователи и 1 гость просматривают эту тему.

Георгий_

Добрый день!
Подскажите, возможно ли и как лучше организовать следующую базу данных.

Так как планируется, что с бд могут работать несколько человек, то удобно разделить сами данные от их обработки (планируется в Calc).

Вопрос в том, как хранить данные: в base (можно ли не открывая base из calc создавать и редактировать таблицы, запросы? И насколько это заморочено?), в другом calc, в текстовых файлах (в последних двух случаях я по крайней мере примерно представляю, как с помощью макросов превратить эти данные в связанные таблицы). Или может существует, например, возможность, синхронизироваться с таблицами Гугл?

economist

Топлю за SQLite:
- быстрее всех встраиваемых и северных БД. Файл БД разместить на SSD-шаре 100mbps/1Gbps сегмента LAN (на WiFi будет тупить)
- шарится по сети (1 поток записи или 4 потока чтения - это условно говоря 3-5 активных пользователей, 5-20 "пассивных")
- ODBC/JDBC-драйверы есть под WinXP-Win11 и все Linux. Начать с http://ch-werner.de
- полно утилит для прямой правки: SQLiteManager (для FireFox), SQLiteStudio, dBeaver итд, искать ссылки в Википедии/офсайтах
- Calc/Writer (точнее Формы в них) - можно использовать для построения таблично- и тексто-ориентированных офисных приложений
- доступ данным в любом LO приложении по Ctrl+Shift+F4
- все данные SQLite хранит как текст. Вы можете записать в числовую колонку 'слово' и Null - и оно сохранится без ошибок. Гибкость+
- приятный стандарт SQL92 в таком стиле:
SELECT 'Фамилия', 3, * FROM Таблица
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

economist

Слегка отговорю от БД на базе текстовых файлов (движок "Текст" в LO Base):
- readonly, т.е. все TXT файлы в "папке БД" должны быть доведенными до кондиции  
- нет соединений таблиц в SQL SELECT (самое неприятное, придется макросятничать)
- нет индексов, скорость выполнения запросов - "средняя", таблиц по 100k+ тыс строк будут тупить
- странно работают/не работают функции работы с текстом, регистром итд. Но важнейшие типа SQL SUBSTR() -работают

Но есть План Б: использовать "линковку" HSQLDB к текстовым файлам (есть индексы и возможно добавление строк в TXT через SQL INSERT). Функционал близок к таковому у MS Access. Но сама HSQLDB не без странностей.

По сути Text-движок идеально подойдет для readonly-выгрузок справочников и регулярных отчетов из 1С/ЗУП для "затягивания" данных из них в документы Writer/Calc. Частый кейс - заполнения реквизитных полей договоров, служебок итд.

Если TXT требуют доработки - ее можно сделать макросом на Basic (и особенно эффективно на Python, который работает со строками в ~4 раза быстрее). Встроенный в LO Python несложно научить работать и с SQLite БД, на форуме есть моя ветка про Python+Pandas.
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...