#c #mysql
#c #mysql
Вопрос:
Я хочу создать приложение ‘x’ со встроенной базой данных.Если я создам другое приложение ‘y’ без встроенной базы данных, будет ли возможно прочитать и обновить базу данных в приложении ‘x’.
Ответ №1:
Я не уверен, что вы подразумеваете под «встроенной» базой данных mysql. Ваше приложение подключится к mysql через сокет, и любое другое приложение подключится к нему (при условии, что у него правильные учетные данные). В качестве альтернативы вы могли бы использовать sqlite
, которым проще управлять в среде настольных приложений.
Комментарии:
1. Встроенной базой данных является mysql, может быть любая встроенная база данных.
Ответ №2:
Рассмотрите потребности решения. Если вам нужно предоставить общий доступ к данным, создайте общую базу данных. Если вам нужно совместно использовать бизнес-логику, создайте приложение, которое обслуживает запросы из этой базы данных. Я не уверен, каковы возможности MySQL в отношении встраивания базы данных внутри приложения, но если вы встраиваете базу данных в приложение, данные должны оставаться внутри приложения.
Ответ №3:
Нет, я так не думаю. Поскольку вы используете встроенную базу данных, она фактически является частью вашего приложения (embedded), поэтому у нее нет внешнего интерфейса как такового. Это потому, что встроенный MySQL не запускает процесс сервера базы данных для прослушивания запросов. Вся логика доступа к базе данных связана с вашим приложением.
Вы могли бы либо:
- Попросите приложение X прослушивать порт и пересылать запросы к его встроенной базе данных, это, по крайней мере, отвлекает от того факта, что это база данных в фоновом режиме, это выглядело бы так же, как и любая другая служба.
- Используйте не встроенную базу данных, это должно быть довольно просто настроить на самом деле. Вы могли бы заставить X запускать и останавливать сервер БД при его запуске и остановке.
- Используйте файловую базу данных, такую как SQLLite.
Комментарии:
1. что, если я сначала запущу приложение ‘x’, а затем запущу ‘y’, когда ‘x’ запущен, смогу ли я получить доступ к базе данных ‘x’ из ‘y’?.
2. Ну, разве это не зависит от специфики встроенной базы данных? Даже если она встроена в приложение (так что запуск приложения автоматически запускает базу данных), если база данных прослушивает какие-либо порты, почему другое приложение не может подключиться к ней? Конечно, можно привести очень веский аргумент в пользу того, что встраиваемая база данных, черт возьми, не должна быть настроена таким образом, чтобы другие программы не могли с ней возиться.