Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Не удаляемая запись в БД

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
vlom
Отправлено: 02 Декабря, 2010 - 11:12:33
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 681
Дата рег-ции: Окт. 2010  
Откуда: Екатеринбург


Помог: 4 раз(а)




У меня вопрос к гуру MySQL
возможно ли создать запись в БД которую не возможно будет удалить,
или это придётся реализовывать средствами php?

К примеру, есть таблица разделов, и в которой находится запись default (раздел в который
будут заноситься все статьи по умолчанию, если не указано иное), необходимо чтобы его
нельзя было удалить. вот в этом и заключается вся суть. Мне в голову пришла только мысль реализации на php, сравниваем id раздела по умолчанию с id удаляемого, если совпадает, выводим сообщение, что данный раздел удалять нельзя, если отличное то продолжаем запрос к БД
 
 Top
DeepVarvar Супермодератор
Отправлено: 02 Декабря, 2010 - 11:41:24
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




vlom Я канеш не гуру... Мне унтересно стало самому.. Поковырял гугла..
Ты наверное знаешь что в самой базе есть возможность ограничивать отдельного пользователя на какие-либо глобальные действия... А вот чтобы не дать возможнось удалить некую запись в таблице нужно сделать еще одну таблицу с связанным индексом к первой. Ко второй таблице даже обращаться не нужно - мускуль вернет ошибку при попытке удаления из первой.. Вот что-то типа того..
А вот как это организовать технически... Жди гуру...
 
 Top
vlom
Отправлено: 02 Декабря, 2010 - 11:58:19
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 681
Дата рег-ции: Окт. 2010  
Откуда: Екатеринбург


Помог: 4 раз(а)




DeepVarvar лишние таблицы как-то не охота создавать, и как я понял ваш вариант затронет все записи в таблице.

Думаю проще всё же это реализовать на php, через простую проверку if-else...

Просто хотелось услышать мнение мастеров)))))
 
 Top
Мелкий Супермодератор
Отправлено: 02 Декабря, 2010 - 11:58:35
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




vlom, на моей памяти, такую штуку делают на стороне php, при том, в самой таблице записи default может не быть, вшивается статично в логику скрипта с id=0 (который при автоинкременте свободен).
А если в таблице нет записи - то и удалить её нельзя Улыбка

А на стороне СУБД... Поглядите в сторону триггеров, по идее - похоже, но не работал с ними, не могу утверждать наверняка.


-----
PostgreSQL DBA
 
 Top
vlom
Отправлено: 02 Декабря, 2010 - 12:03:46
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 681
Дата рег-ции: Окт. 2010  
Откуда: Екатеринбург


Помог: 4 раз(а)




Мелкий Спасибо, думаю это именно то, что мне надо, такая реализация будет вполне приемлема,
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB