Organiser ma base de données et mes tables

Eléphanteau du PHP | 24 Messages

21 nov. 2007, 01:36

Bonjour,

Je souhaite créer un site web de gestion de petites annonces. Je souhaite utiliser un jeu de frame afin que tout se passe dans la même fenêtre.

Vous pouvez voir un exemple de ce que je veux ici : http://annonces-lucratives.com/frametest/

La personne qui a commencé ce projet (ce n'est pas moi) a crée une base de données avec 2 tables (ann_annonces et ann_categories).

Ma premiére insertion dans la base de données sera la création de la petite annonce. Pour ce faire, je suis en train de réaliser un formulaie de saisie : http://annonces-lucratives.com/frametes ... nnonce.php

Ensuite, les annonces crée devront apparaître sur l'index, au milieu, en fonction de la sélection qui sera faite dans le menu de gauche.

Aussi, je me demande si je dois mettre les annonces et les catégories dans la même table ? Apparament, mon prédécesseur avait choisi d'utiliser 2 tables.

Si je sépare les annonces et les catégories, pourrais je faire un tri d'annonce par catégorie pour mon frame central ?

J'ai vu qu'un champ id est souvent crée. Il est souvent de type integer. Quel est l'utilité de ce champ ? C'est un simple compteur ou bien cette information est elle réutilisable par la suite ?

C'est la premiére fois que je fais un site un peu évolué, et je n'ai pas vraiment de repére avec php/my sql.

Mammouth du PHP | 1029 Messages

21 nov. 2007, 08:41

Bonjour,

Le principe de faire plusieurs tables est de ne pas multiplier l'information.

Tu ne donnes toutes les champs de tes tables, mais j'imagine qu'il existe une série de catégories fixes, qui sont répertoriés dans ta table ann_categories, avec effectivement un champ 'id', afin que cette catégories soit retrouvable facilement(cela s'appelle clé primaire).

Dans ta table ann_annonces, tu devrais avoir au moins 3 champs , 'id' clé primaire de la table 'annonce' ou quelque chose de proche, pour insérer ton annonce, et une clé secondaire qui devrais s'appeler quelque chose comme 'id_ann_categorie', où on inséra le n° id de la table ann_catégories représentant
je ne sais si c'est clair, mais tu devrais trouver plein de tuto sur la conceptions des bases de données.
L'expérience est la somme de toutes nos erreurs.

Eléphanteau du PHP | 24 Messages

21 nov. 2007, 18:05

Bonjour,

Merci de ses explications qui vont bien m'aider. Je vais utiliser google pour plus de détail et trouver des tutos.

Désolé de revenir à mon exemple, mais j'aimerais faire le point.
En effet les tables ann_annonces et ann_categories ont ces champs :

- ann_annonces :
-> annid
-> catid
-> count

- ann_categories :
-> catid
-> couleur
-> nom

Si j'ai bien compris tes explications, 'annid' est la clé primaire de la table. Lorsque j'insére une annonce, je lui attribue un numéro annid. Donc, je peux attribuer un type DECIMAL et en extr auto_increment.
'catid', est une clé secondaire qui me servia à faire le lien avec la table ann_categories. Type DECIMAL
'count' doit contenir le sujet de mon annonce. Je peux donc lui attribuer un type TEXT. Est-ce correct ?

Mammouth du PHP | 1029 Messages

21 nov. 2007, 22:33

tes clés primaires seront mieux adaptées en INT, pas besoin de nombre à virgule.

pour le reste il me semble que tu as compris le principe .

MaitrePylos
L'expérience est la somme de toutes nos erreurs.