Je vais essayer d'expliquer ça differemment.
Pour concevoir une base de données, il faut garder à l'esprit un mot primordial : "
données". Il faut commencer avant toute autre chose par répertorier toutes les données que tu vas devoir manipuler dans l'ensemble de ton application. J'utilise le terme de "
application" à dessein, il peut s'agir aussi bien d'un site web que d'un progiciel de gestion intégré. Ce faisant, tu vas te retrouver avec une liste de mots qu'il va falloir trier et regrouper : tu auras lors du tri un certain ménage à faire, supprimer les doublons, effacer "le bruit", c'est à dire ce qui en fin de compte est sans intérêt, puis regrouper ce qui reste en entités distinctes. Ces entités auront chacune un nom qui est l'un des mots de cette liste, mais également des propriétés qui seront d'autres mots de cette même liste (pas les mêmes bien sur)
De là, tu vas devoir déterminer ce qui relie les différentes entités entre elles. Je prends un exemple brut.
Tu as par exemple une liste de mot suivante:
- abonné
- nom
- prenom
- adresse res principale
- ville res principale
- adresse res secondaire
- ville res secondaire
On va limiter à ça : On peut considérer "Abonne", "Adresse" comme des entités distinctes.
- Abonne aura comme propriétés "nom" et "prenom";
- Adresse aura comme propriétés "adresse", "ville" et on peut définir "type" qui pourra avoir en valeur "principale" ou "secondaire"
On commence à discerner la structure de la base, mais en fait il faut arriver à faire abstraction de la base et ne pas penser en terme de "tables" ni "champs" mais "entités" et "Propriétés"
Partant de là, tu dois établir les cardinalités entre les entités. Un abonné peut avoir 1 ou plusieurs adresses, mais une adresse ne correspond en principe qu'à zéro ou un seul abonné.
Je te laisse sur ce schéma basique de chez basique, commence à repenser à ton application de cette manière: tu es dans la partie la plus compliquée et la plus longue, mais quand tu auras correctement tout analysé puis conçu une base cohérente, le reste sera infiniment plus facile à utiliser.
Je te recommande aussi vivement des
tutos sur developpez.com et en particulier un document PDF sur la
création de bases