Редактирование записей в БД

TRL

Новичок
Редактирование записей в БД

Есть табличка с пользователями, табличка с группами пользователей, табличка для разделения ползователей по группам

Задача:
при редактировании группы, в селекте выводятся все пользователи, если пользователь добавлен в эту группу, тогда он выделяется.. ну это впринцепе я думаю и так понятно :)

Вопрос: как лучше сделать редактирование записей, что бы новые выбранные добавились, а старые (если убрались из списка) удалялись...

думал сначало, удалять все записи по данной группе, а потом по новому прописывать выбранное, но выход не есть кул, т.к. поле автоинсерта слишком быстро будет расти и с большими разрывами...

Может кто что подскажет по этому поводу? Срочно нужно... плз...
 

Фанат

oncle terrible
Команда форума
поле автоинсерта слишком быстро будет расти и с большими разрывами...
ну и что?

-~{}~ 24.06.06 22:44:

нужно срочно, а ты такими глупостями занимаешься.
уж реши что-нибудь одно.
если бы действительно нужно было срочно, то ты бы даже не посмотрел в сторону "автоинсерта", а делал бы дальше.
 

TRL

Новичок
ну... не хотелось бы брак делать :) всёравно со временем вылезит...
 

TRL

Новичок
да ну... смотри, INT ограничен (не помню только до скольки)... если админы будут туды сюды гонять пользователей.... чо тогда :)) автоинсер растёт до максимума... и всё... при этом быстро растёт... :) хотя можно написать тулзень, для оптимизации :))
 

Фанат

oncle terrible
Команда форума
ну и через сколько времени он вырастет. до максимума?
 

TRL

Новичок
мммм... незнаю... ладно, уговорил :)) так и сделаю... только можно будет ставить фикс, при изменении списка пользователей, что бі не переписывать данные, если они не были изменены...
 

Фанат

oncle terrible
Команда форума
ну вот узнай сначала - есть проблема, или нету
а только потом решай.
ты проблему сам выдумал себе из головы, и решение ищешь. вместо того, чтобы делом зниматься.

на досуге попробуй посчитать, когда "автоинсер дорастёт до максимума" если каждый день менять группы 10 тыщам пользователей.
 

TRL

Новичок
ок...

только вот тепреь иная проблемка выпадает.. не совсем в тему категории форума, но в тему поста :)

как выбрать всех пользователей с таблицы пользователей, которые не состоят в редактируеомой группе, т.е. их нет в таблички для распредления их по группам... :( Что-то никак не получается... Вот получить данные о пользователях, которые есть не проблема :))
 

Wicked

Новичок
LEFT JOIN + IS NULL

-~{}~ 25.06.06 12:07:

Я правильно понимаю, что под "автоинсертом" подразумевается авто-инкремент в таблице связей? Возможно я советую плохое, но может он там вообще не нужен? :)
 

TRL

Новичок
Да ты правильно понял, но я думаю не стоит их убирать, бо их использую это поле использую при редактировании и удалении записей...

Пробовал с джоинам (первый раз работаю с ним).

PHP:
SELECT usr.UserID, usr.Login 
           FROM users as usr 
               LEFT JOIN users_to_group as usr_g ON usr.UserID = usr_g.UserID 
                                                                              AND usr_g.UserGroupID =4 
                                                                                     WHERE usr.UserID IS NULL;
Вроде как работает :)
 

Фанат

oncle terrible
Команда форума
Да ты правильно понял, но я думаю не стоит их убирать, бо их использую это поле использую при редактировании и удалении записей...
а зачем?
чем тебя не устраивает указывать при удалении ид группы + ид юзера?
 

TRL

Новичок
что-то я не совсем понял к чему это ты :)

ИД группы для управления группами (редактирование названия группы, удаление группы, присвоение группы для конкретного пользователя)

ИД юзера для управления юзерами (удаление, редактирование, присвоение группы)

---------------------------------
users
---------------------------------
UserID int(10) auto_increment
Login varchar(45)

---------------------------------
users_to_group
---------------------------------
UserToGroupID int(10) auto_increment
UserID int(10)
UserGroupID int(10)

Изеро табличку не полностью описую... вот так примерно...

-~{}~ 25.06.06 11:06:

ааа... стоп :)) в табице.. свзей... запарился....
даже не знаю что и сказать.. может не нужен... :))
 

Фанат

oncle terrible
Команда форума
это я к тому, что тебе Wicked написал. Который задал своершенно правильный вопрос:
ну и нафига во второй таблице auto_increment?

-~{}~ 25.06.06 11:08:

редактирования у тебя в ней никакого нету, а удаление делается по сочетанию остальных двух полей.
хочешь удалить ЮЗЕРА из ГРУППЫ - ну так и удаляешь соответствунную запись из таблицы.
 

TRL

Новичок
да.. ты прав... его вообще стоит убрать :)

-~{}~ 25.06.06 11:31:

мдя.. ещё одна проблема бАлин....
есть два селекта, с которых перекидуются пользователи. т.е. список пользователей не добавленных в группу и список пользователей добавленных в группу.

Списки с именем list2 и list2 всё ок, только вот с такими именами при выборе не оддного значения сохранятеся только последнее... Еси меня на list2[] к примеру, всё ок.. Но тогда джава скрипт не фурычит, с помощью окторого перекидуются все данные... он по имени работает... Если добираться по айдишнику - не получается... ладно в офтопе напишу, а то сосвсем не в тему форума получается :)
 
Сверху