Я использую эту функцию:
gcaa() { git add --all && git commit -m "$*" }
В моем файле конфигурации zsh я могу просто сделать:
> gcaa This is the commit message
Для автоматической постановки и фиксации всех файлов.
Что ж, пока вы даете клиенту пользователя только с правильными разрешениями, я не вижу ничего неправильного с подключением напрямую к MySQL. Возможно, если у вас будет много-много работающих клиентов, которые будут поддерживать множество подключений к MySQL открытыми, в то время как веб-служба может использовать одно соединение и обрабатывать нагрузку от всех клиентов.
Истинная полезность веб-службы - это когда у вас много бизнес-логики, которой не может быть в базе данных. Встраивать эту логику в клиент - очень плохая идея, потому что пользователи могут запускать устаревшие версии и так далее. Кроме того, веб-служба позволяет иметь разные типы клиентов (например, клиент Windows, веб-клиент и т. Д.) Без необходимости переписывать какую-либо логику, кроме представления.
Несколько причин (в произвольном порядке):
Конечно, веб-сервисы - не универсальная панацея. Некоторые из вышеперечисленных могут не применяться в вашем конкретном сценарии, используйте то, что лучше для вас.
Прямое подключение к базе данных влечет за собой, очевидно, наличие прямого доступа к вашей базе данных из Интернета. Это означает, что если вы не будете очень осторожны с настройкой разрешений, вы можете сделать всю свою базу данных уязвимой для атак. В то время как с веб-службой единственный доступ, который может иметь любой пользователь к базе данных, - это доступ / функциональность, доступная через веб-службу. Я хотел бы заявить, что надлежащая защита и поддержка базы данных MySQL, открытой в сети, - это больше хлопот, чем дополнительный код, используемый для создания уровня аутентификации веб-службы.
Кроме того, если вам нужно каким-либо образом изменить свои таблицы, вам придется обновить свои клиентские приложения, а не просто обновить веб-службу, если ваши запросы генерируются клиентом.
Это используется для других ответов, но учтите, что если вы разрешите клиентам подключаться напрямую к центральному серверу, это даст им необходимые учетные данные для выполнения любого запроса в базе данных, в которой они работают. Я не уверен, насколько хороша поддержка в MySQL для ограничения использования ресурсов, но я уверен, что прямо сейчас решительный клиент может подключиться к вашему серверу базы данных и запустить такой плохо написанный запрос, что ваш сервер БД оказывается на коленях. Они не обязательно будут делать это со злым умыслом, возможно, они просто пытаются реализовать дополнительную функцию, о которой вы не думали.
Итак, в основном, то, что позволяет вам делать веб-сервис, - это отнимать некоторую мощность у пользователь. Мощность, которая им в данном случае не нужна. Если, конечно, клиенты не запускают собственный сервер базы данных, но это ' совершенно другая среда. (если они хотят разрушить собственную БД, это их дело)
Веб-служба позволит вам кэшировать данные, уменьшая нагрузку на базу данных.
Это также упростит предоставление данных из вашей системы другим системам.
Another thing is flexability - with a web service as another layer, you can change the connection string/scheme changes for all clients in a single location, you won't have to redistribute the client.
Will you ever need any of these? I usually don't go for paradigms, as you say, but I think a web service can make sense. Still, only you know the design of your application: How many people will use this client? Does a connection to the MySQL server require any special software/configurations on the client computer? (Oracle does, for example).
Больше вопроса, чем ответ, каковы скорость последствий между 2 подходами? I.e. Прямое подключение к MySQL или использование веб-сервиса