Conception de base de données de message privé

Bien, donc je pense que je suis assez proche pour avoir ce dont j'ai besoin, mais je n'en suis pas sûr au sujet d'un couple de choses:

TABLE messages

message_id
message_type
sender_id
timestamp

TABLE message_type

message_type_code (1, 2, 3)
name (global, company, personal)

TABLE message_to_user

message_id
receiver_id
status (read/unread)

Objectifs:

  1. Être en mesure d'envoyer des messages GLOBAUX pour tous les utilisateurs.
  2. Envoyer des messages PERSONNELS entre 1 ou plusieurs utilisateurs.
  3. De déterminer si l'un de ces messages ont été lus ou non par le récepteur.

Questions:

  1. Mon schéma de prendre soin de tout ce qu'il doit?
  2. Ce qui serait un exemple de requête SQL ressemble à remplir quelqu'un à la boîte de réception, amenant des messages GLOBAUX ainsi que des messages PERSONNELS, je voudrais être en mesure de déterminer qui est qui pour l'INTERFACE utilisateur.

Et s'il vous plaît n'hésitez pas à ajouter à mon schéma si vous vous sentez qu'il serait bénéfique.

source d'informationauteur dcolumbus