18-10-2009, 05:00 PM
Et c'est ce que My Hotel a fait.
Je vais tenter à mon tour.
Une discussion privée, c'est comme une discussion, mais en privée. Tu as donc des entités "discussion", des entités "messages", des entités "utilisateurs". Et, pour stocker les restrictions d'accès, tu as des entités supplémentaires qu'on nommera "permissions".
Quand un utilisateur lancera une discussion privée, que se passe-t-il ?
Ensuite, l'utilisateur pourra inviter des participants : chaque invitation créera alors une ligne supplémentaire dans la table des permissions en ayant pour "private_topic_id" l'identifiant de la discussion et comme "user_id" l'identifiant de l'utilisateur invité.
Tu comprends mieux ? Sais-tu comment implémenter ça du côté de la base de données ?
Sephi-Chan
Je vais tenter à mon tour.
Une discussion privée, c'est comme une discussion, mais en privée. Tu as donc des entités "discussion", des entités "messages", des entités "utilisateurs". Et, pour stocker les restrictions d'accès, tu as des entités supplémentaires qu'on nommera "permissions".
- Les discussions privées sont stockées dans une table "private_topics" ;
- Les utilisateurs sont stockés dans une table "users" ;
- Les messages privés sont stockés dans une table "private_messages". Cette table a une colonne "private_topic_id" qui indique à quelle discussion privée est attaché chaque message ;
- Les permissions sont stockés dans une table "permissions". Cette table a au moins deux colonnes : "private_topic_id" et "user_id" ;
Quand un utilisateur lancera une discussion privée, que se passe-t-il ?
- On crée une ligne dans la table "private_topics", avec le nom de la discussion ;
- On crée un premier message (celui de l'initiateur de la discussion). On l'associe à la discussion grâce à une colonne "private_topic_id", qui stockera donc l'identifiant de la discussion à laquelle le message appartient ;
- On crée une ligne dans les permissions. Bien sûr, le créateur de la discussion a le droit de s'exprimer dedans, donc on lui crée une ligne d'autorisation qui aura pour "private_topic_id" l'identifiant de la discussion créée et comme "user_id" l'identifiant de l'utilisateur ;
Ensuite, l'utilisateur pourra inviter des participants : chaque invitation créera alors une ligne supplémentaire dans la table des permissions en ayant pour "private_topic_id" l'identifiant de la discussion et comme "user_id" l'identifiant de l'utilisateur invité.
Tu comprends mieux ? Sais-tu comment implémenter ça du côté de la base de données ?
Sephi-Chan