2009-03-28 7 views
1

Mon site (ASP.NET/C#/MS-SQL 2005) possède plusieurs sections qui permettent de laisser des commentaires (profils d'utilisateurs, pages images, vidéos, etc). Je veux stocker tout dans un seul tableau de commentaires.Tableau des commentaires avec plusieurs types de parents

Mon problème consiste à relier le commentaire à son parent. Les clés primaires des profils utilisateur sont des identifiants uniques, tandis que les images et les vidéos utilisent des ints. J'aimerais avoir une relation de clé étrangère du commentaire à son parent.

Quelles seraient les meilleures pratiques pour cela?

Répondre

1

Je voudrais utiliser des tables de jointure, une pour chaque section qui permet des commentaires. Ensuite, vous utiliserez la clé que vous voulez pour la table des commentaires et votre table de jointure devra simplement avoir l'identifiant de votre table de section et de votre table de commentaires.

user_profiles 
    id uniqueidentifier 
    ... 

    comments 
    id int 
    ... 

    user_profile_comments 
    profile_id uniqueidentifier 
    comment_id int 
1

Il y a un débat sur la meilleure pratique ici. Mon opinion est d'utiliser des identifiants de substitution pour tout. Même l'utiliser pour le profil utilisateur, que vous en ayez besoin ou non. Ensuite, vous n'avez à gérer qu'un seul "modèle" pour connecter des entités connexes. Cela vous permet d'automatiser beaucoup de code standard si vous le souhaitez. Même si vous ne pas automatiser la plaque de cuisson, il sera plus simple d'écrire et moins sujette aux erreurs.

Questions connexes