2010-08-19 4 views
1

J'ai une question et je ne suis pas sûr de la meilleure façon de le concevoir.Question de conception de base de données avec des boîtes de message

Fondamentalement, il y a des utilisateurs. Chaque utilisateur peut avoir une boîte de message, et chaque boîte à son tour peut avoir plusieurs messages.

Le problème est, est qu'il existe des boîtes de message spécial, y compris «Nouveau» et «Corbeille». Un utilisateur doit avoir ces deux cases.

J'avais quelques idées sur ce qui pouvait être fait. Une de mes idées était que chaque boîte de message ait un champ enregistrant son type (énumération de "new", "trash" ou "other"), mais cela ne les forcerait pas à avoir ces boîtes, ce que je préférerais

Je pourrais aussi avoir à chaque utilisateur des champs se rapportant spécifiquement à leurs boîtes spéciales (donc dans le tableau user il y aurait des domaines tels que newBox et trashBox)., les tables user et user_messageBox Bien sûr, si ceux-ci sont nécessaires seraient mutuellement Ensuite, je pourrais faire en sorte que la table des messages ne soit pas liée aux utilisateurs, donc il y aurait une autre table pour relier ces deux-là -Beaucoup. t Je ne veux pas de relation many-to-many, donc ça ne résout rien!

Répondre

0

Si vous ne voulez qu'une seule boîte de message par utilisateur, appelez "nouveau" et "détritus" autre chose, comme un état. Avoir ceci un champ du message. (Vous aurez également besoin d'un champ pour l'utilisateur ou de manière équivalente la boîte de message dans chaque message.)

Cela vous fait penser hors des sentiers battus (!) Et peut vous donner d'autres idées sur la façon d'utiliser champ si vous le souhaitez: "Marqué", "important", "spam", etc.

+0

Vous savez, j'ai pensé à cela, mais j'ai oublié ça! Donc merci d'avoir répondu. Je pense que je vais essayer et voir où ça me mène. – rovaughn

+0

Ce plan a très bien fonctionné! Donc, je vais choisir le vôtre comme réponse. Merci. – rovaughn

0

Pourquoi ne pas utiliser un champ message_box_type ,.

Je pense que vous devriez forcer les utilisateurs à avoir les deux types de boîte de message en utilisant la logique de l'application.

Idéalement, il y aurait deux tables, une table de messages avec un ID de clé étrangère message_box_id qui le relie à une autre table message_box. La table message_box a à son tour un champ message_box_type en plus des autres champs. La logique de l'application s'assurerait que deux enregistrements message_box des deux types 'new' et 'trash' sont créés lors de l'inscription/création de l'utilisateur

+0

Je savais que je pouvais le faire grâce à la logique de l'application, mais je voulais voir s'il y avait un bon moyen de le faire à travers la base de données. Je pense que je vais expérimenter avec cette configuration, alors merci de répondre. – rovaughn

Questions connexes