Организация БД приложения
Спасиба всем ответившим!
Хм.. а в чем преимущество использования 2-х баз?
Вообще этот пост - продолжение предведущего "история транзакций " ;) на который Вы ответили
Я так и не понял смысла разделения. Можно же использовать одну единственную БД, также определять id. Если вы, определив id в 1-й базе, знаете кто обращается во 2-й, то что изменится, если вы объедините базы в одну?
По замыслу так: к БД с номер/логинами/хешами паролей любой пользователь конектится под один и тем ид (или воще без него). Если аутентификация прошла успешно - запоминаем номер, разрываем конект с этой БД, и конектимся ко второй БД с ид == номер . Таким образом, мы знаем кто и когда подконекчивался и какие транзакции выполнял. В результате, можем установить конкретного человека, который что-то наделал не то:) Мож есть другой неведомый и более красивый/рациональный способ :) Поделитесь таким, плиз
Либо есть другой подход - на каждого зарегистрированного пользователя создается отдельный пользователь БД (с помощью команды CREATE USER) и каждый входит под своим логином БД.
2. Each account is named using the same format as for the GRANT statement; for example, 'jeffrey'@'localhost'.
Пользователь конектится из веб-приложения. Хотя это тож можно расмотреть как вариант. В любом случае - пасиба
На мой субъективный взгляд, тоже нет никакой необходимости в разделении БД. Никакого выигрыша в безопасности и уж тем более в производительности это не дает, скорее наоборот, больше обеъктов - сложнее управлять, обеспечивать целостность и безопасность. И с точки зрения функциональности, тоже не вижу выгод...всю функциональность, которая здесь описана можно реализовать и в одной БД.
А варианты кроме CREATE USER есть?
Цитата: integral
А варианты кроме CREATE USER есть?
Еще раз. Создаете 1 пользователя БД. Все внешние пользователи в БД входят под данным аккаунтом. Создаете таблицу своих собственных пользователей, где храните записи с логинами, паролями (хэш), id-шники. При входе пользователь должен ввести логин и пароль, которые сопоставляются с данными из вашей таблицы. Если совпадает, то доступ разрешен. Вам нужно будет самому организовывать разграничение привилений, т.е. создавать таблицу(таблицы) , где будет указано, какие привилегии каждому из ваших пользователей даны и самостоятельно остлеживать доступ к данным.
Плюс - движки online игр.
пишется свитчер:
Код:
<?
function SwitchDB($db_name) {
include [ФАЙЛ КОНФИГА];
$lnk = mysql_connect($db['server'], $db['user'], $db['password'])
or die ('Not connected : ' . mysql_error());
mysql_select_db($db_name,$lnk) or die ('Can\'t use foo : ' . mysql_error());
return $lnk;
}
function SwitchDB($db_name) {
include [ФАЙЛ КОНФИГА];
$lnk = mysql_connect($db['server'], $db['user'], $db['password'])
or die ('Not connected : ' . mysql_error());
mysql_select_db($db_name,$lnk) or die ('Can\'t use foo : ' . mysql_error());
return $lnk;
}
Код:
<?
mysql_query($q, SwitchDB('имя 1-ой базы'));
mysql_query($q, SwitchDB('имя 2-ой базы'));
}
mysql_query($q, SwitchDB('имя 1-ой базы'));
mysql_query($q, SwitchDB('имя 2-ой базы'));
}