Vous pouvez avoir autant de raccourcis clavier que nécessaire. Il est logique de donner un ID utilisateur à PICTURES si vous voulez lier plus d'une image à un utilisateur. Si vous voulez que chaque utilisateur n'ait qu'une seule image, vous pouvez lui donner une image.
Vous pouvez également faire les deux. Reportez-vous à USERS.pictureid si vous voulez voir l'image principale (comme une image portrait ou un avatar) et permettre à PICTURES d'avoir un ID utilisateur afin que vous puissiez gérer un ensemble d'images pour chaque utilisateur. Vous pouvez également donner à un utilisateur plus d'un pictureid, par exemple un driverlicencepictureid, un avatarpictureid, un portraitpictureid etc, chacun étant une clé étrangère à PICTURES.pictureid. Vous pouvez même envisager la possibilité de faire en sorte que chaque image soit liée à plusieurs utilisateurs, comme Facebook, ce qui permet à chaque utilisateur d'être "tagué" sur plusieurs images, mais aussi de marquer plus d'un utilisateur dans chaque image .
Dans ce cas, vous aurez besoin d'une table pour attacher ces deux. Définissez une table croisée USERSPICTURES qui contient un ID utilisateur et un ID d'image. Vous pouvez utiliser cette table pour définir des liens croisés entre les utilisateurs et les images.
Comme je l'ai déjà dit, vous pouvez toujours donner à chaque utilisateur un identifiant pour une image spécifique en plus de la table croisée.
La même chose vaut pour les amis de cours. Chaque personne peut être un ami de chaque autre personne. Donc, dans ce cas, vous pourriez peut-être faire avec la table FRIENDS simplement stocker la relation entre deux utilisateurs. Donnez à vos amis un User1Id et un User2Id, et cela permet de stocker la connexion entre deux utilisateurs (si c'est ce que vous voulez).
Golez merci pour la réponse. Si je donne l'ID de l'utilisateur et user2id alors quelle relation je dois définir un à plusieurs je pense que im juste stocker la relation. L'autre relation entre l'image et l'utilisateur est de un à plusieurs, car l'utilisateur peut avoir plusieurs images. J'ai les tables et les relations suivantes. – SilentCoder
Cela dépend. Si vous utilisez ma suggestion pour redéfinir la table FRIENDS dans une sorte de table USERRELATION, vous créez réellement une relation plusieurs à plusieurs entre les utilisateurs. Il existe une relation un à plusieurs entre USERS.userid et RELATION.user1id et une même relation entre USERS.userid et RELATION.user2id. Si vous pensez que FRIENDS est une entité différente (pas des utilisateurs en soi), il peut être utile de conserver une table FRIENDS avec une simple relation un à plusieurs entre USERS.userid et FRIENDS.userid. – GolezTrol
Golez merci pour la réponse. Si je donne l'ID de l'utilisateur et user2id alors quelle relation je dois définir un à plusieurs je pense que im juste stocker la relation. L'autre relation entre l'image et l'utilisateur est de un à plusieurs, car l'utilisateur peut avoir plusieurs images. J'ai les tableaux suivants. Utilisateurs: id, nom d'utilisateur, mot de passe, email, ip, port, ID de pk. La table des amis contient l'ID comme pk, friendid. La table Pictures contient l'identifiant comme pk, filepath, isprofile. Pouvez-vous définir des clés dans les tableaux. Je veux dire fk ou une clé unique si nécessaire. Merci. – SilentCoder