Вопрос о встроенной базе данных для настольных приложений

#c #mysql

#c #mysql

Вопрос:

Я хочу создать приложение ‘x’ со встроенной базой данных.Если я создам другое приложение ‘y’ без встроенной базы данных, будет ли возможно прочитать и обновить базу данных в приложении ‘x’.

Ответ №1:

Я не уверен, что вы подразумеваете под «встроенной» базой данных mysql. Ваше приложение подключится к mysql через сокет, и любое другое приложение подключится к нему (при условии, что у него правильные учетные данные). В качестве альтернативы вы могли бы использовать sqlite , которым проще управлять в среде настольных приложений.

Комментарии:

1. Встроенной базой данных является mysql, может быть любая встроенная база данных.

Ответ №2:

Рассмотрите потребности решения. Если вам нужно предоставить общий доступ к данным, создайте общую базу данных. Если вам нужно совместно использовать бизнес-логику, создайте приложение, которое обслуживает запросы из этой базы данных. Я не уверен, каковы возможности MySQL в отношении встраивания базы данных внутри приложения, но если вы встраиваете базу данных в приложение, данные должны оставаться внутри приложения.

Ответ №3:

Нет, я так не думаю. Поскольку вы используете встроенную базу данных, она фактически является частью вашего приложения (embedded), поэтому у нее нет внешнего интерфейса как такового. Это потому, что встроенный MySQL не запускает процесс сервера базы данных для прослушивания запросов. Вся логика доступа к базе данных связана с вашим приложением.

Вы могли бы либо:

  1. Попросите приложение X прослушивать порт и пересылать запросы к его встроенной базе данных, это, по крайней мере, отвлекает от того факта, что это база данных в фоновом режиме, это выглядело бы так же, как и любая другая служба.
  2. Используйте не встроенную базу данных, это должно быть довольно просто настроить на самом деле. Вы могли бы заставить X запускать и останавливать сервер БД при его запуске и остановке.
  3. Используйте файловую базу данных, такую как SQLLite.

Комментарии:

1. что, если я сначала запущу приложение ‘x’, а затем запущу ‘y’, когда ‘x’ запущен, смогу ли я получить доступ к базе данных ‘x’ из ‘y’?.

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