|
|
|
| есть 4 таблицы,
fst_features - так называемые permissions Для пользователя. например редактирование новости и т.д.
fst_accounts- это пакеты, т.е. например VIP пакет- там пользователь может редактировать новости, добавлять комеентраии ну и все в этом роде... это я к примеру
fst_user_features - это связка пользователей с таблицей fst_features
fst_account_features - это связка fst_accounts и fst_features
fst_user_account - связка этих юзеров и fst_account_features
Вот в чем вопрос. я хосу одним запросов выдрать из базы все permissions для пользователя...т.е. пользователь может иметь несколько пакетов например VIP, EDITOR и т.д. ну в них естественно находиться несколько permissions, а так же пользователю может отдельно присваиваться обычные permissions. Подскажите как взять из базы все эти данные один запросом+ если например у пользователя нету никаких пакетов, но есть просто permissions, или наоборот- нет permissions, но есть пакеты. Вот сделал запрос:
Select
*
FROM fst_features
RIGHT JOIN fst_user_features
ON (fst_user_features.features_id=fst_features.id and fst_user_features.user_id=1)
RIGHT JOIN fst_account_features
ON fst_account_features.features_id =fst_features.id
LEFT JOIN fst_user_account
ON (fst_user_account.account_id=fst_account_features.account_id
AND fst_user_account.user_id=1)
|
вот, что выводит :
id key_name name value description id_1 user_id features_id id_2 account_id features_id_1 id_3 user_id_1 account_id_1
1 1 1 1 1 1
|
заранее спасибо | |
|
|
|
|
|
|
|
для: FaStY
(28.11.2008 в 22:44)
| |
SELECT
*
FROM
`fst_account_features` INNER JOIN
`fst_features` ON `fst_account_features`.`features_id` =
`fst_features`.`features_id` INNER JOIN
`fst_accounts` ON `fst_accounts`.`account_id` =
`fst_account_features`.`account_id` INNER JOIN
`fst_user_account` ON `fst_user_account`.`account_id` =
`fst_accounts`.`account_id`
WHERE fst_user_account.user_id=1;
|
| |
|
|
|
|
|
|
|
для: MIchail1982
(29.11.2008 в 19:35)
| | нет, не фачит... там несколько грамматических ошибок в коде у вас, но и когда их поправил, все равно не все показываеться((( может скинуть дамп базы? | |
|
|
|
|
|
|
|
для: FaStY
(30.11.2008 в 02:02)
| | да, скиньте дамп, тогда будет попроще | |
|
|
|
|
 6.2 Кб |
|
|
для: MIchail1982
(30.11.2008 в 11:49)
| | прикрепил. | |
|
|
|
|
|
|
|
для: FaStY
(30.11.2008 в 14:25)
| | в fst_user_features была запись 1,1,2 поставьте features_id=1 тогда 1 строчку выведет...
SELECT
*
FROM
`fst_features` INNER JOIN
`fst_account_features` ON `fst_features`.`id` =
`fst_account_features`.`features_id` INNER JOIN
`fst_account` ON `fst_account_features`.`account_id` = `fst_account`.`id`
INNER JOIN
`fst_user_features` ON `fst_user_features`.`features_id` = `fst_features`.`id`
INNER JOIN
`fst_user` ON `fst_user`.`id` = `fst_user_features`.`user_id` INNER JOIN
`fst_user_account` ON `fst_user_account`.`user_id` = `fst_user`.`id`
AND `fst_user_account`.`account_id` = `fst_account`.`id`
WHERE
`fst_user_account`.`user_id` = 1;
|
| |
|
|
|
|
|
|
|
для: MIchail1982
(30.11.2008 в 20:39)
| | так мне и нужно, что бы там features_id=2, потому что features_id=1 уже есть в fst_account_features. т.е в таблице fst_user_features должны быть неповторяющиеся features_id с fst_account_features | |
|
|
|
|
|
|
|
для: FaStY
(30.11.2008 в 23:30)
| | %) полностью запутался в вашей структуре БД | |
|
|
|
|
|
|
|
для: MIchail1982
(30.11.2008 в 23:54)
| | есть права доступа, есть группы(к которым добавляються права доступа), есть юзер(которому могут назначать группы, а так же просто права).
Например;
у нас есть права доступа- доступ к админке(1), доступ для редактирования новостей(2), доступ для управления пользователями(3).
Мы создаем группу под названием "Модератор", в которую добавляем права: доступ к админке, доступ для редактирования новостей.
Есть пользователь Вася.
Добавляем к пользователю группу модератор. Теперь пользователь Вася может заходить в админку и редактировать новости.
Но в группе модератор нет возможности управления пользователями. Но мы хотим, что бы наш пользователь Вася мог редактировать пользователей. Так что мы к нашему пользователю, помимо группы модератор, добавляем права на управление.
Вот вроде такой замысел. | |
|
|
|