8796 sujets

Développement web côté serveur, CMS

Bonjour à tous.
J'aimerais avoir vos avis et vos conseils concernant ma première base de donnée.
En effet je suis occupé à coder ma première application mais n'étant pas gestionnaire de base de donnée je patauge un peu.

Cette application va permettre la création et la gestion de collection en ligne.

J'avais pensé à ce schéma :

-BDD SITE
-->Tables
-utilisateur : contient les données utilisateurs (pseudo, password, ...)
-collection : contient tout les noms de collection avec leur ID auto_increment
-liaison_utilisateur_collection : contient ID_utilisateur et ID_collection (permet de savoir quel utilisateur à crée la collection)

Par la suite j'aimerais ajouter un système de partage qui permettra à plusieurs utilisateur de gérer une même collection, est ce que je m'y prend bien (je ne crois pas ^^)

Ensuite je désire avoir une deuxième BDD qui contiendrais les collections.
Quand l'utilisateur crée une collection, une table est crée avec le nom de la collection.

-BDD Collections
-->Tables
-Coll_1 : quels champs ?
-Coll_2 : quels champs ?
etc...

Qu'en pensez vous ? comment feriez vous ?
Merci d'avance pour votre aide !
Modifié par vallsymachinant (10 Mar 2011 - 14:52)
Tony Monast a écrit :
Bonjour,

Pourquoi créer une nouvelle table pour chaque collection?

Des collections de quoi exactement?


Si je comprends bien le problème il veut créer une table par collection car toutes les collection n'ont pas les mêmes champs.
Exemple :

CollectionDeCd(durée, artiste, année)
CollectionDeVynil(durée, artiste, année, vitesse, diamètre)

Pour moi il faudrait que ta base ressemble à ça :

Utilisateur <---(n,n) donc table de liens ---> Collection
puisque plusieurs utilisateurs pourront gèrer conjointement une collection

Collection ---(1,n)---> Collectionnable
ou
Collection <---(n,n)---> Collectionnable
si un objet peux faire parti de plusieurs collections, tout dépends de ton application, si l'utilisateur choisit parmi une base d'objets pré-existants ou saisit toujours la description des objets de sa collection

Collectionnable ---(1,1)---> Spécificités

Dans ton entité "Collectionnable" tu as tout les attributs de base qui sont communs, et un champ "type" qui décrit au besoin une sous entité. L'avantage c'est que c'est plus flexible, tu peux faire des requêtes sur les Collectionnables plus facilement car ils sont tous dans la même table, et tu peux faire des collections mixtes (CDs et Vynils mélangés)

Exemple :

Utilisateur <--(n,n)--> Collection <--(1/n,n) --> Collectionnable --> (1,1) --> Spécificités
Désolé pour cette réponse tardive mais j'étais parti à la Stratup Week_end de Lille, je regarde vos réponses attentivement dés demain !

Merci en tout cas !