Удалить пользователя который является владельцем записей в разных таблицах

sokol

Zavolga.Net
Удалить пользователя который является владельцем записей в разных таблицах

Вопрос такой: Позволять удалять пользователей или нет?

Допустим есть общая структура сайта, и есть конкретные типы записей которые привязаны к данной структуре. На момент удаления пользователь может быть владельцем каких-то записей, не проверять же все таблицы на наличие там его записей.

У меня пока два варианты, при JOIN,е таблиц (запись, пользователь) в выводе различных типов записей все поля для не существующего пользователя будут null, соответственно можно писать что N/A... но это как-то некрасиво.

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

Что подскажете?
 

sokol

Zavolga.Net
Ну получается что при создании новой подсистемы нужно будет лезть в этот самый SQL запрос и добавлять там еще одну таблицу для проверки. Попа не правда ли...

Вот я и спрашиваю, другие варианты.
Может вобще не позволять удалять пользователей, только блокирование учетной записи и все?
 

Найч

Алгоритмик :-)
sokol
Если нужна такая расширяемость, то можно спрашивать описание таблиц и, в случае присутствия нужного имени поля, посылать туда запрос на наличие такой-то записи
 

sokol

Zavolga.Net
Найч
Т.е. ты предлашаешь сначала SHOW TABLES,
потом для каждой таблицы спросить поля...
Не будет ли это жутко тормозить?
Зачем мне к примеру опрашивать таблицы которые конкретно к подсистеме отношения не имеют, они нарпимер только хранят связи и все, а это лишние циклы...

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

Найч

Алгоритмик :-)
sokol
Можно делать через show tables - жутко тормозить не будет, хотя зачем такая функциональность? Думаю, задачу можно решить по-другому.
К примеру, при держать где-то список таблиц, которые следует проверять. При добавлении новой таблицы, если она содержит определенное поле, добавлять ее в этот список. И далее по теме.
 

Dead

Guest
Сделай проще, при добовлнеие записи, пишется также и имя пользователя.

Поэтому когда удоляеь пользователя, то имя остаётся
а админ и так должен уметь ууправлять всеми пользователями
 

Nime

Guest
Сделай отдельное поле и отмечай пользователя как удалённого :)
 

sokol

Zavolga.Net
Nime чем это отличается от того что я сделаю учетную запись неактивной, т.е. заблокирую данного пользователя, ИМХО ничем. Имеется ввиду физическое удаление записи из таблицы, а не логическое.
 

Nime

Guest
Неактивного пользователя можно активизировать, а удалённую запись аналогично восстановить нельзя. Она даже в списках не показывается и используется только в связанных записях.
 
Сверху