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

  • Автор темы Автор темы TRL
  • Дата начала Дата начала

TRL

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

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

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

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

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

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

-~{}~ 24.06.06 22:44:

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

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

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

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

-~{}~ 25.06.06 12:07:

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

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

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;

Вроде как работает :)
 
Да ты правильно понял, но я думаю не стоит их убирать, бо их использую это поле использую при редактировании и удалении записей...
а зачем?
чем тебя не устраивает указывать при удалении ид группы + ид юзера?
 
что-то я не совсем понял к чему это ты :)

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

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

---------------------------------
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:

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

-~{}~ 25.06.06 11:08:

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

-~{}~ 25.06.06 11:31:

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

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