|
|
|
| Требуется неким образом соединить два сайта, то есть сделать так, чтобы пользователи, регистрируясь на одном сайте, могли войти на другой с теми же логином и паролем.
Честно говоря, мне ничего лучшего не придумалось, кроме как создать для этих двух сайтов одну базу данных.
Посему возникает вопрос: возможно ли, чтобы два сайта работали с одной базой MySQL? Как быть с нагрузкой - не гикнется ли эта база в скором времени?
И если есть другие решения, то какие?
Заранее спасибо. | |
|
|
|
|
|
|
|
для: steiger
(21.09.2006 в 23:20)
| | Ну если делать всё в одной БД, то надо делать или с префиксами (например таблицы первого сайта были виды site1_***, а второго site2_***), тогда надо будет просто при регистрации делать два разных INSERTа... Ну или соединить например таблицы users с двух сайтов в один, но если они большие, то могут возникнуть некоторые проблемы...
ИМХО первый способ предпочтительнее, и наверное быстрее | |
|
|
|
|
|
|
|
для: DEM
(21.09.2006 в 23:27)
| | а сайты на одном сервере? как вы собираетесь получить доступ к базе, если они на разных
серверах? у меня куча сайтов с одной базой работают, у всех таблиц префиксы, каждый
сайт работает только со своими таблицами. но они все на одном хосте. | |
|
|
|
|
|
|
|
для: steiger
(21.09.2006 в 23:20)
| | 1) Сайты расположены на одном сервере?
2) Если сайты расположены на разных серверах, какая версия MySQL используется и поддерживает ли она удалённый тип таблиц FEDERATED? | |
|
|
|
|
|
|
|
для: cheops
(22.09.2006 в 11:36)
| | В том то и проблема, что на разных - забыл сказать.
Используется MySQL 4.1.21. FEDERATED - нет. | |
|
|
|
|
|
|
|
для: steiger
(22.09.2006 в 22:28)
| | А какого рода информация? Она только для чтения или посетители сайта могут её обновлять? | |
|
|
|
|
|
|
|
для: cheops
(23.09.2006 в 00:26)
| | Предполагается, что информация будет обновляться посетителями - есть форум, а также веб-интерфейс к панели управления новостями. Таблиц всего около 20. | |
|
|
|
|
|
|
|
для: steiger
(23.09.2006 в 01:48)
| | Сервера ваши, вы можете их настривать? Или это сервера хост-провайдера?
http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=24947 | |
|
|
|
|
|
|
|
для: cheops
(23.09.2006 в 11:58)
| | Это сервера хост-провайдеров и сетевое обращение отключено. Обидно.
В любом случае, спасибо за помощь :-) | |
|
|
|
|
|
|
|
для: steiger
(23.09.2006 в 16:25)
| | Можно извратиться и написать Web-интерфейс для одного из сайтов, к которому будут обращаься все скрипты для работы с базой данных, но это будет не безопасно и не быстро... | |
|
|
|
|
|
|
|
для: steiger
(21.09.2006 в 23:20)
| | есть вариант:
1) субд может быть где угодно, главное чтобы пользователю был разрешен удаленный коннект 'username'@'%'
2) в MySQL есть функция current_user() при помощи которой сервер сам может определить кто к нему коннектиться. Таблицы не нужно дублировать - в каждую из них (при нормализации не в каждую!!!) следует добавить одно поле project_id. Это поле будет сигнализировать о принадлежности к тому или иному проекту. Также следует создать таблицу projects со следующими полями: project_ID (int), login_name (varchar). Теперь при помощи запроса можно определить id проекта select project_ID from projects where login_name = current_user(). А далее уже при выборке данных в where учитывать этот id.
Если все оформить в виде хранимых процедур, то клиенту (например php) не придется вообще беспокоиться по поводу этих id т.к. законектившись под определенным пользователем субд сама решит кто это и вернет уже тот объем информации, который действительно имеет отношение к этому проекту. | |
|
|
|