Будьте осторожны с вопросами «наилучшего способа» - это будет указывать на этот вопрос на то, чтобы быть вне темы, поскольку мнение основано.
Если ваше приложение полностью закрыто источником (что, я думаю, это ), то это не имеет значения. Вы можете получить доступ к своей основной базе данных , если хотите, потому что все ваши реализации клиента будут частью вашего общего программного пакета.
Это, как говорится, для обеспечения масштабируемости и maintainabilty это, вероятно, лучшая идея для построения интерфейса API аутентификации и использовать это, так вам не нужно управлять компонентом подключения к базе данных вашего программного обеспечения клиента.
Согласен. Посмотрите, что для этих сценариев очень сложно найти ответы, особенно в отношении многопользовательской аренды.
Что вы подразумеваете под закрытым исходным кодом?
Если у меня могут быть API-интерфейсы аутентификации для извлечения данных из основной базы данных, как я могу разместить ее таким образом, что доступ к ней предоставляется только в приложении, а внешние стороны не могут получить к ней доступ? Позже мы должны иметь услуги, которые оказываются внешним пользователям. В этом случае лучше разоблачить это сейчас или позже работать над отдельными услугами? Каковы лучшие опрятные библиотеки веб-сервисов PHP, которые вы знаете, кроме NuSOAP?
Это прекрасно. Пользователи являются общими для всех ваших реализаций, но роли уникальны для каждой реализации клиента. Это указывает , что способ, которым вы его приближаетесь, правилен тем, что вы сначала аутентифицируете , а затем назначаете роль клиента пользователю после входа в систему. Вы, , должны проверить это на свою локальную базу данных (очевидно), а затем назначить сеанс пользователя, так что он остается на все время своего посещения .
Это правильно!Пользователи являются общими для всех реализаций, и они хранятся в основной базе данных, а не в отдельных банках-арендаторах. Роли, которые я имел в виду, для каждого арендатора, арендатор может создавать роли, которые входят в приложение арендатора, такое как биллинговая единица, учетные записи, стойка регистрации и т. д. Таким образом, эти user_id и role_id хранятся в базе данных арендатора. Вот почему я спросил, так как user_id напрямую не сопоставляется с пользовательской таблицей главной базы данных, если все в порядке.
Это слишком широкое, чтобы ответить. Вы также должны быть осторожны, потому что данные клиента могут быть не вашими, чтобы сообщить об этом!
Теперь давайте предположим, что супер администратор хочет знать роли каждого арендатора. В этом случае, как я могу получить данные из всех баз данных арендаторов? Используем ли мы представления для этого или с тех пор, как мы используем mysql, как я могу это достичь?
Опять же, достаточно широк, но я предполагаю, что вы могли бы достичь чего-то вроде этого, запрашивая сервер MySQL для статистики базы данных по каждой клиентской базе и сделать то же самое для хранения файлов, запрашивая сервер , на котором размещается файлы клиента.
Чрезвычайно извините. Мы в основном хотим отслеживать использование баз данных арендаторов, чтобы узнать, превышают ли они сумму, о которой мы договорились. Вот почему. Я надеюсь, что есть способ достичь этого.
Кроме того, для изображений сайта лучше хранить на жестком диске или в базе данных в виде BLOB? Конец дня нам нужно подумать о масштабируемости, а также о том, как изображения будут загружаться с меньшим потреблением полосы пропускания?
«Вы также должны быть здесь осторожны, потому что данные клиента могут быть вашими не сообщать!» Абсолютная правда. Помимо показателей использования, почти никто не будет в порядке с их отслеживанием хоста в своих данных. Это может даже вызвать юридические проблемы, основанные на типе данных. –
Спасибо @ Mr.Llama Я знаю, что вы имеете в виду здесь. В основном данные, которые не являются персональными, но я думаю, что не будет необходимости, так как мы храним все транзакции в основной базе данных, а также у пользователей. –