|
|
|
| делаю обмен сообщениями. проблема возникла в одном-их удаление. нужно чтобы оно удалялось только у получателя когда он нажмет "удалить" или только у отправителя который тоже нажмет "удалить". единственная таблица для сообщений, выглядит так:
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). но кажется что как-то неграмотно.
спасибо. | |
|
|
|
|
|
|
|
для: psychomc
(28.04.2009 в 13:37)
| | ввести поле status:
0 - отправлено, 1 - удалено отправителем, 2 - удалено получаетелм | |
|
|
|
|
|
|
|
для: Loki
(28.04.2009 в 14:04)
| | хм...значит из type delete уберу...
0 - отправлено понятно зачем, чтобы ни 1 и ни 2, только немного путает, вместо 0,1,2 впишу какой-нибудь текст чтоб не запутаться. а так спасибо, все очень легко решаемо, странно что сам сразу не додумался... | |
|
|
|
|
|
|
|
для: psychomc
(28.04.2009 в 14:24)
| | Если делать по большому, нужно разбить это всё на две таблицы.
Письма и размещения.
Письмо стирать тогда, когда не осталось ни одной записи размещения на него ссылающейся.
Тогда автоматически будет решена задача отправки одного письма нескольким пользователям. | |
|
|
|
|
|
|
|
для: Trianon
(28.04.2009 в 14:28)
| | да, Trianon, так может и лучше, но мне нескольким пользователям не нужно...
кстати,Loki, одно поле не работает. В том плане что ведь может быдь удалено и отправителем и получателем? как тогда? все-таки наверное придется делать 2 поля...... | |
|
|
|
|
|
|
|
для: psychomc
(28.04.2009 в 14:53)
| | >...ведь может быдь удалено и отправителем и получателем? как тогда?
тогда удаляется вся строка из таблицы. | |
|
|
|
|
|
|
|
для: Trianon
(28.04.2009 в 15:13)
| | хм. да...это бы подошло. но я не хочу удалять записи из таблицы :)
уже сделал с двумя полями...работает...
p.s что-то форум постоянно "падает на пол" :( | |
|
|
|
|
|
|
|
для: psychomc
(29.04.2009 в 10:24)
| | глупо, конечно, но пусть будет
0 - отправлено, 1 - удалено отправителем, 2 - удалено получаетелм, 4 - удалено всеми | |
|
|
|
|
|
|
|
для: Loki
(29.04.2009 в 11:12)
| | 3 - удалено обоими. | |
|
|
|