LINUX.ORG.RU

Хранение и обработка данных

 


0

3

Всем привет.
Появилась задача - организовать удобное хранение и обработку некоторого набора данных.
Пример: есть объект, у него имеется свойство1, свойство2, ... свойствоN (для каждого объекта количество свойств разное, но свойства с одинаковым индексом - однотипные). Количество объектов неизвестно и может меняться при необходимости (добавляться/удаляться/редактироваться), свойства объекта - аналогично. Требуется организовать удобное заполнение всего этого хозяйства (по типу карточек) и получение выборок по набору определенных условий (по свойствам, по индексу, по содержимому и т.д.).
Грубо говоря - эдакая большая таблица, из столбцов и колонок, из которой необходимо обрабатывать данные по определенным условиям.
Когда-то все это делал в M$ Access, но зависимость от определенной версии офиса и привязка к одной ОС — хуже не придумаешь.

Поэтому — посоветуйте в чем или каким способом можно решить задачу. Прошу учесть некоторые особенности:
— не программер, не админ, просто продвинутый пользователь не владеющий языками программирования. Поэтому вариант «напиши сам» — не подходит;
— организация никаких телодвижений делать не будет. Нужно лично мне, для удобства хранения и обработки большого количества данных (подкинули паспортизацию, кто сталкивался — тот поймет);
— сильно желательно возможность работы как оффтопике, так и нормальной ОС;

Может еще что, буду добавлять позже - сразу сложно все вспомнить.

★★
Ответ на: комментарий от Axon

Он же пишет, что

не программер, не админ, просто продвинутый пользователь не владеющий языками программирования

ziemin ★★
()
Ответ на: комментарий от Axon

Почитал на википедии, что оно такое. Наверное вещь хорошая, но есть ли готовые решения для организации таких БД? Не обязательно в стиле «Дальше-Дальше-ОК», а хотя бы с минимальным порогом вхождения?

vadik ★★
() автор топика
Ответ на: комментарий от ziemin

не программер, не админ, просто продвинутый пользователь не владеющий языками программирования

Я такой же в точности, и что? Ну какой продвинутый прользователь не слышал про SQL?

Axon ★★★★★
()
Ответ на: комментарий от vadik

Если нужно MS Access-like, то можно попробовать тот же LOBase в качестве гуёвой морды. А бекенд - та же MySQL, что ли.

Axon ★★★★★
()
Ответ на: комментарий от ziemin

Не, вики не то. Нужно:
вещь1 | номер | путь1 | путь2 | владелец1
вещь2 | номер | путь1 | владелец2
и т.д.

Пример: выборка по запросу путь2, должна выдать - вещь1, путь1, путь2, владелец1. Выборка по запросу путь1, должна выдать данные с вещь1 | номер | путь1 | путь2 | владелец1
и вещь2 | номер | путь1 | владелец2
.

Вики так не сможет.

vadik ★★
() автор топика
Ответ на: комментарий от vadik

В акцесе таблица была с миллионом колонок типа "[путь1]"?

Или всё-таки таблица была не одна? Тогда сделай скриншот "Схемы данных".

ziemin ★★
()

riki, Kexi это хорошо, но под офтопик могут быть проблемы. Да и есть ли гарантия, что с обновлением версии программы разрабы не сломают совместимость (впрочем это верно для любого софта, но для линукс-стайл особенно актуально)?

Axon.

Если нужно MS Access-like, то можно попробовать тот же LOBase в качестве гуёвой морды. А бекенд - та же MySQL, что ли.

А под виндой чем смотреть? Таскать с собой на флешке портативную версию ЛО? Не слышали, как у них совместимость между версиями?

Может есть какие более «прямые» решения? Хотя бы ткните в какую сторону копать. Те же «реляционных СУБД» - с чего лучше начать и проще.

vadik ★★
() автор топика
Ответ на: комментарий от vadik

А под виндой чем смотреть?

Во-первых, в ТЗ такого не было. :-) Во-вторых, нет ничего универсальнее SQL (поэтому я её и рекомендую). Можете таскать портабельный Base, можете поставить его на целевые машины, можете юзать любой другой клиент для БД. Можете, в конце концов, подключиться к БД через консоль и набрать нужный запрос ручками.

Не слышали, как у них совместимость между версиями?

Единственное, с чем там нужна совместимость, это синтаксис MySQL.

Может есть какие более «прямые» решения?

Использование СУБД для целей СУБД - самое прямое решение из всех.

Хотя бы ткните в какую сторону копать. Те же «реляционных СУБД» - с чего лучше начать и проще.

Я же уже ткнул.

Axon ★★★★★
()
Последнее исправление: Axon (всего исправлений: 1)
Ответ на: комментарий от ziemin

ОК. Попытаюсь конкретизировать. Я связист. Представь таблицу. В шапке
| № п/п | №телефона | Станционные данные | Линейные данные | ... колонок с линейными данными может быть много, и для каждого номера - разное количество ... | Адрес | Примечания |

Как она будет заполнена, думаю, представляешь, телефонную книгу видели все.
Сейчас идет процесс упорядочивания всех этих данных, составляются схемы, акты и т.д., данные заносятся в служебную БД (но доступ к ней не у всех и сама система УГ). Плюс люди, обслуживающие эту БД, напрямую не заинтересованы в поддерживании базы в актуальном состоянии, а мне по роду деятельности - актуальность необходима. Вот и думаю как проще и правильнее выйти из положения.

vadik ★★
() автор топика
Ответ на: комментарий от Axon

Axon

Я же уже ткнул.

Я наверное не правильно выразился. Хотелось бы, чтоб «ткнули» в конкретный мануал или решение. Я реально сейчас не знаю, что это за зверь и с чего начинать. Плюс разбираться придется самому, поэтому и хотелось бы хотя бы какое-то руководство. Ну и конкретный мануал позволит оценить свои возможности, может и браться не стоит - не осилю.

vadik ★★
() автор топика
Ответ на: комментарий от vadik

А, ясно. Вообще, необходимость иметь доступ к одной и той же БД с разных компов накладывает определённые ограничения. Самым лучшим вариантом в данном случае был бы запуск MySQL на каком-нибудь общедоступном сервере и подключение всех клиентов к ней. Возможно, об этом стоит поговорить с вашими админами. Если же нужно только локально, то всё элементарно. Скорее всего, mysql у вас в системе уже есть. Для начала работы можно почитать, например, вот это: https://wiki.archlinux.org/index.php/MySQL и вот это: https://wiki.archlinux.org/index.php/JDBC_and_MySQL. После первоначальной настройки БД, создаёте подключение в LO Base (Пользователь - тот, которому вы дали права на БД, адрес - localhost), и всё, можно работать. Если понадобится вручную написать простенький запрос, то синтаксис SQL можно посмотреть хоть в википедии.

Axon ★★★★★
()
Последнее исправление: Axon (всего исправлений: 3)
Ответ на: комментарий от vadik

Вот и думаю как проще и правильнее выйти из положения.

Для межплатформенности - web интерфейс. Какая схема у служебной БД?

ziemin ★★
()
Ответ на: комментарий от Axon

Все будет локально. Максимум - база будет носиться с собой на флешке и обновляться/синхронизироваться на других компах. Остается открытым вопрос софта для работы с этой БД. На других компах тоже ведь должен быть установлен и настроен mysql? Если да, то вариант отпадает. Админы даже разговаривать на эту тему не будут. И напоминаю про винду. Причем разные версии.

Эх, что-то бы портативное замутить...

ziemin

ziemin

Для межплатформенности - web интерфейс. Какая схема у служебной БД?

Служебная БД - табу. Вариант работы с ней даже не рассматривается (в том числе и по вопросам безопасности). Набивать данные буду сам и в том виде, в котором нужно и удобно мне. А вот веб.интерфейс и носимая с собой на флешке БД - было бы идеально.

vadik ★★
() автор топика
Последнее исправление: vadik (всего исправлений: 1)
Ответ на: комментарий от vadik

На других компах тоже ведь должен быть установлен и настроен mysql? Если да, то вариант отпадает. Админы даже разговаривать на эту тему не будут.

Эх, что-то бы портативное замутить...

Портативное всё равно не выйдет запускать под всеми ОС.

А вот веб.интерфейс и носимая с собой на флешке БД - было бы идеально.

Вы не поняли. Он предложил примерно то же, что и я: общедоступный сервер с БД, только подключение к нему не при помощи клиентского софта, установленного на целевых машинах, а через запущенный на сервере веб-интерфейс.

Axon ★★★★★
()
Ответ на: комментарий от Axon

Axon

Вы не поняли. Он предложил примерно то же, что и я: общедоступный сервер с БД, только подключение к нему не при помощи клиентского софта, установленного на целевых машинах, а через запущенный на сервере веб-интерфейс.

К сожалению не подходит. Простой пример, выезжаем на объект, с собой ноут, подключения к инету нет, соответственно толку от моей БД - тоже. (

Axon

Портативное всё равно не выйдет запускать под всеми ОС.

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

Ладно, утро вечера мудрее. Пойду спать, глядишь на свежую голову что и придумается, ну и выходные впереди.
Временно со всеми прощаюсь. )

vadik ★★
() автор топика
Ответ на: комментарий от vadik

Допустим все данные находятся в обычном текстовом файле, поля, стороки и данные в них между собой разделены спец.символами.

При более-менее приличном количестве записей, ваш софт вскроется это всё парсить. К тому же, для того, чтобы нормально делать выборки, базу придётся грузить в память и работать с ней там, и памяти на это понадобится немало.

Axon ★★★★★
()

1С сумеете освоить на уровне «любая уборщица программировать может»?

Объекты - Справочник Тип свойства - Справочник Значение свойства - Справочник Соответствие свойств и объектов - Регистр сведений, где: Измерения: - Объект - Тип свойства Ресурсы: - Значение свойства

+ отчеты-выборки.

[off]не для «язабан»-а пишу, а помощи ради[/off]

bvn13 ★★★★★
()
Ответ на: комментарий от ziemin

sqlite+sqliteman есть под все версии оффтопика, portable требуется лишь освоить SQL на базовом уровне

anonymous
()

bvn13. 1С, думаю смог бы,но для моих задач оно, во-первых - избыточно (я бы даже сказал - монстр). Во-вторых - у нас 1С-ки имеются только у бухов (и то я не уверен). Короче вариант не подходит.

Всем спасибо за помощь. К окончательному решению пока не пришел. Буду пробовать предложенные варианты.

vadik ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.