| 
			
			 
			
				29.01.2011, 03:26
			
			
			
		 | 
	| 
		
			|  | 
       |  | 
					Регистрация: 27.12.2008 
						Сообщений: 4,201
					 
		
 |  | 
	| будут, просто во-первых я тоже бываю занят, а во-вторых я не вкурил твою идею с первого раза, поэтому решил отложить ее на попозжет.е. в таблицу banlist пишется кто забанил (user_id) и кого забанили (ban_id), причем при добавлении пользователя в banlist сразу же вставляется запись с ban_id = 0. А при бане мы должны сначала узнать из таблицы users банил ли этот пользователь раньше (flag_banned = 1). Если банил вставляем в banlist новую запись, иначе обновляем существующую. Но если пользователь A забанил пользователя B, то он не должен видеть пользователя B, а у тебя видит: 
 
и наоборот, но это у тебя работает. Кроме того, на каждый бан нужно выполнить три запроса select users + insert/update banlist + update users. Не хорошо, теоретически можем потерять данные. Если пользователь отправит 2 запроса бана разных пользователей, тогда один из банов может потеряется. Не уверен, что такая ситуация может возникнуть в real life, но по-крайней мере этого лучше избежать, если есть такая возможность
	
 
	| Код: |  
	| drop table if exists banlist;
create table banlist (user_id int, ban_id int);
insert into banlist values (1, 2), (2, 0);
select user_id from banlist where ban_id != 1 and user_id != 1;
+---------+
| user_id |
+---------+
|       2 |
+---------+ |  
	
 
			
			
	
			
			
			
			
			
				  |