Перейти к содержимому













Фотография
Флейм

На чем писать локальную базу (язык программирования)



Лучший Ответ doca, 08 Август 2018 - 22:37

Секунду, не совсем понял проблему.

 

Нужно по сути сайт перенести в десктоп.

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

 

Java, С# с точки зрения установки ПО будет проще всего работать у тебя на компе. С++ если ты уже более прошаренный, но в целом мне нравится больше C# и я не думаю, что кроссплатформенность нужна.

 

Хранение бд. 10-20т записей в целом может и храниться в формате xml и csv и ты их будешь парсить для работы и обработатывать. Если данные полусекретные- превращаешь csv в файл в какой-нить двоичный и читаешь данные как двоичные, вроде бы тоже проблем это не составляет. Если на открытость данных не важна и структура в целом от одной записи к другой слишком дико разнится- xml. Если все в обычном виде, то csv.

 

Проблема предыдущих решений, в установочник надо запихивать еще обработчик бд и всякое такое. его как-то устанавливать. Твоя цель написать быстро форму работы с данными и запаковать все в Exeшник. Если не прав, уточни плиз. 


Т.е по сути я предлагаю 1) хранить данные в файле, чтобы было легко его обрабатывать. Это не универсальный метод, однако для данной задачи имеет ряд плюсов

 

2) Хранить данные после чтения из базы в памяти. Массив из 20000 элементов с 15-20 записями допустим будет есть 1гб оперативки. На текущем поколении компьютеров это не критично.

Однако скорость обработки данных будет в разы быстрее, чем запросы в бд.

 

3) Как вариант - php скомпилить в бинарник, а чтение перезаписать на файлы.

Перейти к сообщению


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 11

#1 Alberts

Alberts
  • Premium
  • Сообщений: 226
  • Регистрация: 12.08.2016
  • Заработано: 157 руб.
Репутация: 116

Награды: 18

  
  
  
  
  
  
  
  

Отправлено 08 Август 2018 - 11:29

День добрый, у меня есть самописный скрипт базы документов написанный на php+mysql, в котором есть админка для добавления новых документов, кнопки с выборками нужных мне документов с нужными полями и т.д. Все работает хорошо.

 

Возникла необходимость сделать подобную базу, но чтобы она была локальная, легко ставилась на компьютер пользователя и он мог в ней работать (добавление новых документов, выборки и т.д.) Почему возникла такая необходимость? Потому что, большая часть документов не для паблика, они скрыты от посторонних, но зачем испытывать судьбу и ждать пока кто-то взломает сайт и получит доступ к документам не для паблика. Зачем мы их храним на сайте если они не для паблика? Они нужны для выборок и отчетов.

 

Быстрый вариант это поставить опенсервер или денвер и чуть переписать php код чтобы работал с локальными путями. Но это не совсем то, что нужно. Хотелось бы чтобы все работало без всех этих приблуд с серверами. К примеру кидаю на комп юзера папку с базой, он запускает экзешник и начинает работать. В базе планируется порядка 10 000 - 20 000 записей.

 

Посоветуйте на каком языке лучше это начинать делать? Есть опыт работы с sql базой, и было бы неплохо если бы на этом языке и пришлось писать все запросы.

Возможно Delphi? Возможно у какого-то языка есть преимущества в этом деле? Возможно есть специальный софт для подобных дел?


Сообщение отредактировал Alberts: 08 Август 2018 - 11:31


#2 Oswald Mandus

Oswald Mandus
  • Platinum
  • Сообщений: 185
  • Регистрация: 10.07.2015
  • Заработано: 8 руб.
Репутация: 24

Награды: 19

  
  
  
  
  
  
  
  

Отправлено 08 Август 2018 - 11:53

К примеру кидаю на комп юзера папку с базой, он запускает экзешник и начинает работать.

Sqlite, LiteDb, много всяких.

Даже не папка, а файл.


Сообщение отредактировал Oswald Mandus: 08 Август 2018 - 11:54


#3 Alberts

Alberts
  • Premium
  • Сообщений: 226
  • Регистрация: 12.08.2016
  • Заработано: 157 руб.
Репутация: 116

Награды: 18

  
  
  
  
  
  
  
  

Отправлено 08 Август 2018 - 11:59

Sqlite, LiteDb, много всяких.

Даже не папка, а файл.

 

SQLlite наверное это будет удобнее, но слышал что они часто рушатся и надо постоянно их бекапить (в отличии от mysql). А на чем лучше писать саму СУБД прогу, для работы с этой базой? Думаю найти какой-либо исходник и уже править под себя, главное начало положить, коннект с базой, а дальше уже думаю разберусь.


Сообщение отредактировал Alberts: 08 Август 2018 - 12:03


#4 Oswald Mandus

Oswald Mandus
  • Platinum
  • Сообщений: 185
  • Регистрация: 10.07.2015
  • Заработано: 8 руб.
Репутация: 24

Награды: 19

  
  
  
  
  
  
  
  

Отправлено 08 Август 2018 - 12:03

в которой на экран будут выводиться данные в нужном мне виде?)

.net'овский, C# например.

 

найти какой-либо исходник

https://www.codeproj...com/search.aspx


Сообщение отредактировал Oswald Mandus: 08 Август 2018 - 12:05


#5 Alberts

Alberts
  • Premium
  • Сообщений: 226
  • Регистрация: 12.08.2016
  • Заработано: 157 руб.
Репутация: 116

Награды: 18

  
  
  
  
  
  
  
  

Отправлено 08 Август 2018 - 12:16


https://www.codeproj...com/search.aspx

Спасибо, ушел разбираться))



#6 evgen_sorgin

evgen_sorgin
  • Platinum
  • Сообщений: 206
  • Регистрация: 15.10.2014
  • Заработано: 15 руб.
Репутация: 253

Награды: 22

  
  
  
  
  
  
  
  

Отправлено 08 Август 2018 - 20:40

я кажется на хабре читал что в пхп реализовали возможность запуска на пк через экзэшник без сервера,

но лично я бы посмотрел в первую очередь в сторону питона


Сообщение отредактировал evgen_sorgin: 08 Август 2018 - 20:44


#7 doca

doca
  • Platinum
  • Сообщений: 346
  • Регистрация: 16.08.2016
  • Заработано: 40 руб.
Репутация: 66

Награды: 20

  
  
  
  
  
  
  
  

Отправлено 08 Август 2018 - 22:37   Лучший Ответ

Секунду, не совсем понял проблему.

 

Нужно по сути сайт перенести в десктоп.

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

 

Java, С# с точки зрения установки ПО будет проще всего работать у тебя на компе. С++ если ты уже более прошаренный, но в целом мне нравится больше C# и я не думаю, что кроссплатформенность нужна.

 

Хранение бд. 10-20т записей в целом может и храниться в формате xml и csv и ты их будешь парсить для работы и обработатывать. Если данные полусекретные- превращаешь csv в файл в какой-нить двоичный и читаешь данные как двоичные, вроде бы тоже проблем это не составляет. Если на открытость данных не важна и структура в целом от одной записи к другой слишком дико разнится- xml. Если все в обычном виде, то csv.

 

Проблема предыдущих решений, в установочник надо запихивать еще обработчик бд и всякое такое. его как-то устанавливать. Твоя цель написать быстро форму работы с данными и запаковать все в Exeшник. Если не прав, уточни плиз. 


Т.е по сути я предлагаю 1) хранить данные в файле, чтобы было легко его обрабатывать. Это не универсальный метод, однако для данной задачи имеет ряд плюсов

 

2) Хранить данные после чтения из базы в памяти. Массив из 20000 элементов с 15-20 записями допустим будет есть 1гб оперативки. На текущем поколении компьютеров это не критично.

Однако скорость обработки данных будет в разы быстрее, чем запросы в бд.

 

3) Как вариант - php скомпилить в бинарник, а чтение перезаписать на файлы.


Сообщение отредактировал doca: 08 Август 2018 - 22:34


#8 kopyrin

kopyrin
  • Сливапер LVL 5
  • Сообщений: 145
  • Регистрация: 02.03.2014
  • Заработано: 26 руб.
Репутация: 142

Награды: 16

  
  
  
  
  
  
  
  

Отправлено 09 Август 2018 - 00:57

В свое время писал на FoxPro. Вещь древняя но с твоей задачей справится на раз. 



#9 Oswald Mandus

Oswald Mandus
  • Platinum
  • Сообщений: 185
  • Регистрация: 10.07.2015
  • Заработано: 8 руб.
Репутация: 24

Награды: 19

  
  
  
  
  
  
  
  

Отправлено 09 Август 2018 - 09:18

не думаю, что кроссплатформенность нужна.

Кстати, для неё есть .net core от ms, уже давно используют в проде.



#10 doca

doca
  • Platinum
  • Сообщений: 346
  • Регистрация: 16.08.2016
  • Заработано: 40 руб.
Репутация: 66

Награды: 20

  
  
  
  
  
  
  
  

Отправлено 09 Август 2018 - 09:33

Кстати, для неё есть .net core от ms, уже давно используют в проде.

 

Не спорю, давно уже не занимался нормальным десктопом)



#11 Alberts

Alberts
  • Premium
  • Сообщений: 226
  • Регистрация: 12.08.2016
  • Заработано: 157 руб.
Репутация: 116

Награды: 18

  
  
  
  
  
  
  
  

Отправлено 09 Август 2018 - 15:13

Всем спасибо за советы, я все же выбрал c#, небольшие сдвиги уже есть, сроки не горят пока сам тыкаю.



#12 hoz

hoz

    Алень

  • Сливапер LVL 3
  • Сообщений: 1 032
  • Регистрация: 19.10.2014
  • Заработано: 220 руб.
Репутация: 11

Награды: 22

  
  
  
  
  
  
  
  

Отправлено 26 Август 2018 - 21:18

SQLlite наверное это будет удобнее, но слышал что они часто рушатся и надо постоянно их бекапить (в отличии от mysql). А на чем лучше писать саму СУБД прогу, для работы с этой базой? Думаю найти какой-либо исходник и уже править под себя, главное начало положить, коннект с базой, а дальше уже думаю разберусь.

Ничего в лайте не сыпется, если руки кривые. Система надёжна. До некоторого времени, и сейчас многие ещё на ней пишут андроид-приложения.

СУБД сама по себе не очень удобна. Хотя, мне пришлось ею внедрять к себе в робота торговаого. Т.к. так язык недоязык. И хз как что-то другое прилепить.. Точнее, понять можно, не было влом и не до того.

Хотя, если выбирать под C# или Java я бы посоветовал объектно-ориентированные СУБД. Это вообще пуля. И всякие там мускулы и лайты далеко позади в сравнении с таким СУБД. Если будет нужно, я могу поглядеть, что нарыл того и здесь опубликовать. Щяс влом. Может уже не актуально))





Похожие темы Collapse

  Название темы Форум Автор Статистика Последнее сообщение

Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных

×

Зарегистрируйся моментально!