Je voudrais que les utilisateurs puissent créer leurs comptes (qui stockent les informations de login et de mot de passe - table Accounts) et une fois que l'email est vérifié, ils ont la possibilité de créer leur propre enregistrement de personne (qui stocke les autres informations telles que le prénom, ... - table People). Je veux également que les utilisateurs (titulaires de comptes) puissent créer des enregistrements de personnes autres que les leurs. Ainsi, lorsqu'ils créent leur propre fiche de personne, les utilisateurs ont la possibilité d'accepter une fiche de personne qui a été créée par quelqu'un d'autre au lieu de créer leur propre fiche ou même de télécharger un profil à partir d'autres sites de réseaux sociaux et de créer la fiche de personne.
Chacun de ces titulaires de compte dispose également de plusieurs messages d'autres utilisateurs et d'autres contenus de réseaux sociaux tels que des blogs, ... Ma question est de savoir s'il faut associer ces messages, blogs, emplois,... au account_id ou au person_id ?
\================================================================================= UPDATE : Bon, je crois que je n'ai pas été très créatif dans la formulation de ma question. Dans une application simple, je pourrais créer une seule table USERS et stocker toutes les informations de connexion ainsi que les informations de l'utilisateur telles que le prénom, ... et associer les messages, et d'autres choses avec le user_id.
Mais comme je veux que les utilisateurs puissent créer de nombreux enregistrements de personnes (non seulement pour eux-mêmes mais aussi pour d'autres, qui peuvent inclure des informations sur les utilisateurs qui n'ont pas encore créé leurs comptes), je pense séparer les informations de connexion dans la table ACCOUNTS (ou la table USERS) et les informations de profil dans la table PEOPLE. Chaque titulaire de compte n'aura qu'un seul enregistrement de personne (le sien et c'est l'information qui l'identifie au monde entier, car les informations de connexion ne servent qu'à l'authentification du système). Imaginons que VOUS ayez créé un compte ainsi que votre enregistrement de personne, et que vous voyiez la personne Bill Gates et souhaitiez lui envoyer un message, nous avons deux scénarios : (1) L'enregistrement de personne de Bill Gates n'est revendiqué par aucun titulaire de compte comme étant sa propre personne.
(2) L'enregistrement de personne de Bill Gates a un titulaire de compte associé Dans le scénario (1), le système ne vous laisse même pas envoyer un message car il n'y a pas de titulaire de compte qui pourrait vérifier les messages et dans le scénario (2), dois-je enregistrer l'identifiant de la personne BillGates dans l'identifiant des destinataires de la table MESSAGES ou BillGates.account.id ? La même chose s'applique à tous les autres types de contenu, comme les blogs, les photos, ...
Voyons voir, si je peux assembler les relations de la table :
ACCOUNTS
id
login
password
person_id (account holders personal record)
PEOPLE
id
first_name
....
creater_id (current_account().person.id or just the current_account().id ?)
updater_id (current_account().person.id or just the current_account().id ?)
MESSAGES
sender_id (current_account().person.id or just the current_account().id ?)
receiver_id (person.id or person.account.id ?)
subject
body
BLOGS
id
title
body
author_id (current_account().person.id or just the current_account().id ?)
J'espère avoir été clair. Si ce n'est pas le cas, faites-le moi savoir, je vais essayer de trouver d'autres exemples.