Bonjour,

Je voulais creer un site d'annonces, et lors de la conception de ma base de données je me suis bloqué sur le faite qu'il y a beaucoup des catégories dans le site et si je vais faire une table pour chaque catégories (c'est absurde)!!

le site sera developer avec Symfony2

est ce que quelqu'un peut m'aider SVP?


Merci. upload/25349-img12.PNG
alors la table categorie existe et contient le nom et la description des categorie

la table annonce contient les champs communs entre tout les categories.

les tables immobilier,emplois.... contient les champs specifique à chaque categorie

alors cé logique ou pas ??
Modérateur
Si tu as un champ des champs différents forcément ça le devient. ça dépends de plusieurs points:

Si tu as beaucoup de catégories ou pas. peu comme par exemple 10, ou beaucoup comme 100.
Si les catégories doivent ou pourront être dynamiques un jour prochain.
Si les catégories ne sont pas dynamiques mais peuvent être amenées à changer régulièrement

pour mettre un autre système en place, ça va vite devenir complexe, alors n'entrons pas dans les détails si c'est pas nécessaire Smiley cligne . L'alternative pourrait être un système de base de données non relationnel, genre orienté document à l'instar de MongoDB, qui au final conviennent bien mieux au web que les classiques SQL
merci pour la reponse

le systeme doit etre dans le future un site d'annonces avec plus de 10categories et chaque categorie possede des champs specifique et des sous categories;

le developement va etre fais avec symfony2;

donc pouvez vous me proposer comment je peut faire SVP :'(

Merci infiniment
Adresses toi plutôt à un forum sf2 ! Mais à mon avis, il y a d'abord le boulot d'ecrire comment va fonctionner le site, les écrans,les interactions, les parcours utilisateur... De cela découlera naturelement quels sont tes besoins techniques.

Dans un tel cas, je ferais une structure type :

Table champs:
Type: (chaine de caractère, case à cocher, etc.)
Valeurs: liste de valeurs possibles
Etiquettes: Le texte a afficher à coté du champs ou des champs en cas de boutons radio ...
Ex : Surface en m²

Table catégorie:
Nom:
Ex : Immobilier

Table catégorie-champs:
catégorie: id catgéorie
champ: id champ
Ex : Immobilier <-> Surface en m²

Table annonce:
Catégorie: id catgéorie
Texte: descriptif libre
Ex : Mon appart

Table champs-valeur:
Champ: id champ
Annonce: id annonce
valeur: valeur du champ
Ex : Mon appart <-> surface <-> 108 m²


Bref, à BIEN réfléchir en amont ...