Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: обмен сообщениями (удаление)
 
 автор: psychomc   (28.04.2009 в 13:37)   письмо автору
 
 

делаю обмен сообщениями. проблема возникла в одном-их удаление. нужно чтобы оно удалялось только у получателя когда он нажмет "удалить" или только у отправителя который тоже нажмет "удалить". единственная таблица для сообщений, выглядит так:
CREATE TABLE `messages` (
  `id_message` int(11) NOT NULL auto_increment,
  `id_author` int(4) NOT NULL,    
  `text_message` text NOT NULL,    
  `type` enum('nowrite','write','delete') NOT NULL default 'nowrite',
  `date_send` datetime NOT NULL default '0000-00-00 00:00:00',     
  `id_user` int(4) NOT NULL,     
  PRIMARY KEY  (`id_message`),                    
  KEY `id_user` (`id_user`)             
) TYPE=MyISAM; 


изначально нормально всё не продумав хотел сделать одно поле - тип (непрочтенное, прочтенное, удаленное). но когда возникла проблема с удалением... В общем такой вопрос: как это грамотнее реализовать? единственное что приходит в голову-два поля, типа delete_author enum('yes',no), delete_user enum('yes',no). но кажется что как-то неграмотно.
спасибо.

  Ответить  
 
 автор: Loki   (28.04.2009 в 14:04)   письмо автору
 
   для: psychomc   (28.04.2009 в 13:37)
 

ввести поле status:
0 - отправлено, 1 - удалено отправителем, 2 - удалено получаетелм

  Ответить  
 
 автор: psychomc   (28.04.2009 в 14:24)   письмо автору
 
   для: Loki   (28.04.2009 в 14:04)
 

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

  Ответить  
 
 автор: Trianon   (28.04.2009 в 14:28)   письмо автору
 
   для: psychomc   (28.04.2009 в 14:24)
 

Если делать по большому, нужно разбить это всё на две таблицы.
Письма и размещения.
Письмо стирать тогда, когда не осталось ни одной записи размещения на него ссылающейся.
Тогда автоматически будет решена задача отправки одного письма нескольким пользователям.

  Ответить  
 
 автор: psychomc   (28.04.2009 в 14:53)   письмо автору
 
   для: Trianon   (28.04.2009 в 14:28)
 

да, Trianon, так может и лучше, но мне нескольким пользователям не нужно...
кстати,Loki, одно поле не работает. В том плане что ведь может быдь удалено и отправителем и получателем? как тогда? все-таки наверное придется делать 2 поля......

  Ответить  
 
 автор: Trianon   (28.04.2009 в 15:13)   письмо автору
 
   для: psychomc   (28.04.2009 в 14:53)
 

>...ведь может быдь удалено и отправителем и получателем? как тогда?

тогда удаляется вся строка из таблицы.

  Ответить  
 
 автор: psychomc   (29.04.2009 в 10:24)   письмо автору
 
   для: Trianon   (28.04.2009 в 15:13)
 

хм. да...это бы подошло. но я не хочу удалять записи из таблицы :)
уже сделал с двумя полями...работает...

p.s что-то форум постоянно "падает на пол" :(

  Ответить  
 
 автор: Loki   (29.04.2009 в 11:12)   письмо автору
 
   для: psychomc   (29.04.2009 в 10:24)
 

глупо, конечно, но пусть будет
0 - отправлено, 1 - удалено отправителем, 2 - удалено получаетелм, 4 - удалено всеми

  Ответить  
 
 автор: Trianon   (29.04.2009 в 12:04)   письмо автору
 
   для: Loki   (29.04.2009 в 11:12)
 

3 - удалено обоими.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования