Bonjour,

Tout d'abord je m'excuse s'il fallait diviser le sujet en deux 1) pour la structure de la table, 2) pour le fonctionnement. Mais je me suis dit qu'il serait plus facile de suivre le sujet si tout était dans le même poste.

Je suis entrain de développer la base de donnée de mon futur site internet. J'aimerais permettre à mes membres de pouvoir envoyer des messages privés. Le problème est que je ne sais pas par où commencer et surtout comment m'y prendre.

J'ai essayé de regarder comment était faite la base d'un forum tel que phpbb mais je n'ai pas pu avancer beaucoup.

Si je me base sur ce que j'ai vu chez phpbb2 il faudrait 2 tables :

CREATE TABLE phpbb_privmsgs (
privmsgs_id mediumint(8) unsigned NOT NULL auto_increment,
privmsgs_type tinyint(4) NOT NULL default '0',
privmsgs_subject varchar(255) NOT NULL default '0',
privmsgs_from_userid mediumint(8) NOT NULL default '0',
privmsgs_to_userid mediumint(8) NOT NULL default '0',
privmsgs_date int(11) NOT NULL default '0',
privmsgs_ip varchar(8) NOT NULL default '',
privmsgs_enable_bbcode tinyint(1) NOT NULL default '1',
privmsgs_enable_html tinyint(1) NOT NULL default '0',
privmsgs_enable_smilies tinyint(1) NOT NULL default '1',
privmsgs_attach_sig tinyint(1) NOT NULL default '1',
PRIMARY KEY (privmsgs_id),
KEY privmsgs_from_userid (privmsgs_from_userid),
KEY privmsgs_to_userid (privmsgs_to_userid)
) TYPE=MyISAM;
CREATE TABLE phpbb_privmsgs_text (
privmsgs_text_id mediumint(8) unsigned NOT NULL default '0',
privmsgs_bbcode_uid varchar(10) NOT NULL default '0',
privmsgs_text text,
PRIMARY KEY (privmsgs_text_id)
) TYPE=MyISAM;
Première question est ce qu'il existe d'autre type de structure plus adéquate ? (j'ai notamment vu que phpbb3 avait 4 tables ...)

La deuxième partie de mon message concerne l'utilisation, l'idée dernière cette base. En effet, je suis perdu dans son fonctionnement.
Je m'explique :

Je ne comprends pas comment un message envoyé par le membre A apparaitra dans le dossier message envoyé du membre A comme déjà lu, alors qu'il apparaitra comme non lu dans le dossier Indox du membre B puisque le champ "privmsgs_type" prend les valeurs 1 à 5 qui sont défini dans le fichier includes/constant.php comme :

// Private messaging
define('PRIVMSGS_READ_MAIL', 0);
define('PRIVMSGS_NEW_MAIL', 1);
define('PRIVMSGS_SENT_MAIL', 2);
define('PRIVMSGS_SAVED_IN_MAIL', 3);
define('PRIVMSGS_SAVED_OUT_MAIL', 4);
define('PRIVMSGS_UNREAD_MAIL', 5);
Donc globalement ce que je cherche à faire c'est un système de message privé. Envoi de message privé, stockage des messages dans le dossier INBOX ou OUTBOX ou suppression.

Enfin voila si quelqu'un pouvait m'expliquer, m'aiguiller, me donner des liens explicatifs, des conseils enfin tout information susceptible d'aider ma compréhension j'en serai reconnaissant.

Merci =)

PS : Mon niveau de connaissance PHP, MySql n'est pas des plus avancé mais je ne demande qu'à apprendre.