2011-06-17 2 views
0

Je veux concevoir une base de donnéesarchitecture de base de données optimisée nécessaire

on my website , a user can have multiple images assigned to it and one image can also have multiple users assigned to it. 
one should be able to list how many images a user has Or how many users a image has. 

there will be about 1,00,000 users and 1,00,000 images.. 

comment puis-je construire cette relation NOMBREUX À NOMBREUX entre les deux avec un minimum de redondance et une efficacité maximale ... s'il vous plaît me suggérer une architecture optimisée .. Pour mettre en œuvre une relation plusieurs-à-plusieurs, vous avez besoin d'une table de liens.

Répondre

0

Créez une table 'UserImage' qui partage les clés primaires de l'image et de la table Utilisateur. De cette façon, vous pouvez vérifier si un utilisateur a une image, ou combien d'utilisateurs une image a sans travailler directement sur la table d'image.

+0

merci de répondre mais cette approche est inefficace en termes de mémoire et de temps d'accès, elle fait aussi base de données redondante ... car une combinaison possible de lakh-carré ... – Aman

1

est correct Sparg @ Tim ... une table "Link" ou "Bridge" est ce que vous avez besoin ... Pour élaborer plus de son explication ...

ImagesTable 
ImageID integer, auto-increment 
ImageOtherInfo... 

UsersTable 
UserID integer, auto-increment 
OtherUserInfo... 

UserImages 
UserImageID integer, auto-increment 
ImageID integer -- key to image table 
UserID  integer -- key to user table. 

De cette façon, vous avez juste besoin interroger directement la table "UserImages" pour trouver des choses et se joindre à l'autre pour obtenir le reste des données ...

+0

+1 pour explication –

+0

@Aman remercie tim pour avoir répondu – Aman

+0

o pensé la même approche et a également construit une relation de clé étrangère sur la table userimage avec les deux autres tables (avec cascade sur supprimer et mettre à jour)> problème avec cette approche est que si nous avons des images ikh et ikh utilisateurs, nombre total de combinaisons possibles sont lakh-carré, une grande figure.Ceci affecte directement l'efficacité de la base de données et la rendre redondante et lourde en termes de mémoire et de temps de recherche .. – Aman

Questions connexes