Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Два сайта - одна база...?
 
 автор: steiger   (21.09.2006 в 23:20)   письмо автору
 
 

Требуется неким образом соединить два сайта, то есть сделать так, чтобы пользователи, регистрируясь на одном сайте, могли войти на другой с теми же логином и паролем.
Честно говоря, мне ничего лучшего не придумалось, кроме как создать для этих двух сайтов одну базу данных.
Посему возникает вопрос: возможно ли, чтобы два сайта работали с одной базой MySQL? Как быть с нагрузкой - не гикнется ли эта база в скором времени?
И если есть другие решения, то какие?
Заранее спасибо.

   
 
 автор: DEM   (21.09.2006 в 23:27)   письмо автору
 
   для: steiger   (21.09.2006 в 23:20)
 

Ну если делать всё в одной БД, то надо делать или с префиксами (например таблицы первого сайта были виды site1_***, а второго site2_***), тогда надо будет просто при регистрации делать два разных INSERTа... Ну или соединить например таблицы users с двух сайтов в один, но если они большие, то могут возникнуть некоторые проблемы...

ИМХО первый способ предпочтительнее, и наверное быстрее

   
 
 автор: elenaki   (22.09.2006 в 09:55)   письмо автору
 
   для: DEM   (21.09.2006 в 23:27)
 

а сайты на одном сервере? как вы собираетесь получить доступ к базе, если они на разных
серверах? у меня куча сайтов с одной базой работают, у всех таблиц префиксы, каждый
сайт работает только со своими таблицами. но они все на одном хосте.

   
 
 автор: cheops   (22.09.2006 в 11:36)   письмо автору
 
   для: steiger   (21.09.2006 в 23:20)
 

1) Сайты расположены на одном сервере?
2) Если сайты расположены на разных серверах, какая версия MySQL используется и поддерживает ли она удалённый тип таблиц FEDERATED?

   
 
 автор: steiger   (22.09.2006 в 22:28)   письмо автору
 
   для: cheops   (22.09.2006 в 11:36)
 

В том то и проблема, что на разных - забыл сказать.
Используется MySQL 4.1.21. FEDERATED - нет.

   
 
 автор: cheops   (23.09.2006 в 00:26)   письмо автору
 
   для: steiger   (22.09.2006 в 22:28)
 

А какого рода информация? Она только для чтения или посетители сайта могут её обновлять?

   
 
 автор: steiger   (23.09.2006 в 01:48)   письмо автору
 
   для: cheops   (23.09.2006 в 00:26)
 

Предполагается, что информация будет обновляться посетителями - есть форум, а также веб-интерфейс к панели управления новостями. Таблиц всего около 20.

   
 
 автор: cheops   (23.09.2006 в 11:58)   письмо автору
 
   для: steiger   (23.09.2006 в 01:48)
 

Сервера ваши, вы можете их настривать? Или это сервера хост-провайдера?

http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=24947

   
 
 автор: steiger   (23.09.2006 в 16:25)   письмо автору
 
   для: cheops   (23.09.2006 в 11:58)
 

Это сервера хост-провайдеров и сетевое обращение отключено. Обидно.
В любом случае, спасибо за помощь :-)

   
 
 автор: cheops   (23.09.2006 в 16:30)   письмо автору
 
   для: steiger   (23.09.2006 в 16:25)
 

Можно извратиться и написать Web-интерфейс для одного из сайтов, к которому будут обращаься все скрипты для работы с базой данных, но это будет не безопасно и не быстро...

   
 
 автор: 703370   (12.10.2006 в 20:52)   письмо автору
 
   для: 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 т.к. законектившись под определенным пользователем субд сама решит кто это и вернет уже тот объем информации, который действительно имеет отношение к этому проекту.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования