IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Votre avis sur la structure de ma base


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 227
    Points : 81
    Points
    81
    Par défaut Votre avis sur la structure de ma base
    Bonjour à tous,

    J'ai ouvert une discussion sur la vérification des doublons.
    Au final nous en sommes venu à parler de la structure de ma base de données.
    Le sujet est donc ouvert mais avec un titre qui ne concerne pas ma base.
    Je rouvre le sujet ici en espèrant que dans ce cas cela soit toléré.
    Je dois passer à la saisie rapidement et tant que la structure n'est pas prete, je n'avance pas...

    Je résume donc la situation:
    Je ne suis pas du tout informaticien et devant tous les problèmes techniques que je rencontre, j'ai pris le parti d'éviter les tables relationnelles...

    Mon idée est simple: éviter la 2 ème table.
    Et pour l'instant, c'est jouable.
    Il faut savoir que mon site fera office d'annuaire, donc je n'ai pour l'instant que le descriptif des sociétés.

    De peur de vous assommer, je n'expose pas un exemple de ce principe mais si vous insistez, je pourrais vous expliquer comment je procède.
    Pour l'instant, voici la structure.
    Vos avis sont SUPER BIENVENUS!!!


  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ta base n'ayant pas de structure c'est difficile de la juger
    J'aurais plutot mis un char(5) pour un code postal si on parle d'optimisation.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 227
    Points : 81
    Points
    81
    Par défaut
    Salut Sabotage,

    Je note pour le CPostal.
    Merci

    Je ne connais pas les termes... Structure... la liste des champs si tu veux.
    Ca te semble crédible?
    C'est simple comme base de toute façon.

    Puis je virer l'id et faire de mon champs nom la clef primaire?

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Non car deux personnes pourraient avoir le même nom et manipuler des ids numeriques c'est quand meme plus simple.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 227
    Points : 81
    Points
    81
    Par défaut
    Ok si les ID sont plus simple a manipuler, je note.
    Quant au nom ce seront des noms d'entreprises donc pas de doublon.

    Donc, j'en conclus que ca le fait ma base?
    ...
    Apres reflexion, j'en conclus rien car Evilam n'en pensait pas bcp de bien...
    Que puis faire pour ameliorer?

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il faut juste que tu sois sur d'avoir bien calibré ton projet :
    - n'auras-tu jamais besoin de plusieurs contacts par société ?
    - de pubs dans une troisieme langue ?
    etc.

    Je pense que ce que Evilam voulait dire correspond au cas que je vais te donner :
    Une base dont j'ai eu a m'occuper etait linéaire comme la tienne
    id - client - commercial - ....
    Le "commercial" pouvait faire des opérations sur son "client"
    Malheureusement avec le temps, il a fallu que plusieurs personnes puissent travailler sur le "client".
    Les utilisateurs ont donc créer plusieurs entrées pour le meme client avec chacune un commercial different.
    Les données pour un seul client sont donc repartis sous plusieurs réferences dans la base de donnée.
    Un vrai mic mac.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 227
    Points : 81
    Points
    81
    Par défaut
    Merci pour ta réponse Sabotage,

    Je réalise combien je ne pars pas sur les bases idéales en faisant une base linéaire.
    J'ai 2 solutions:

    1)
    Soit je laisse comme cela et je reprends le tout plus tard.
    Pour l'instant, je ne vois qu'une table "Type de contrat pub" et une table "Images du client" à rajouter.
    Ce qui impliquerait d'avoir à extraire les images clients de l'actuelle table pour informer la table "Images du client".
    J'ai le temps de le réaliser avant d'avoir bcp de contrat pub chez moi...
    Sinon, avec mes premiers contrats, je peux envisager de le financer en le faisant faire par quelqu'un qui a les connaissances.
    2)
    Me faire aider ici en exposant le projet dans son détail...
    Cela est il envisageable?

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Manipuler une table est extremement simple.
    Tu peux faire un INSERT INTO TABLE SELECT champ1,champ2 FROM table
    Ou meme depuis Phpmyadmin copier les champs.

  9. #9
    Membre expérimenté Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Points : 1 414
    Points
    1 414
    Par défaut
    Je me permet d'ajouter une troisième option si tu le veux bien.
    3) Lire un bouquin ou un bon tutoriel sur php et MySQL pour commencer à mettre les mains dans le cambouis.

    Il me semble que ton projet est un bon point de départ pour apprendre les bases de données relationnelles (MySQL) et php. Si tu le souhaite bien entendu ;-)

    Citation Envoyé par idamarco Voir le message
    Merci pour ta réponse Sabotage,

    Je réalise combien je ne pars pas sur les bases idéales en faisant une base linéaire.
    J'ai 2 solutions:

    1)
    Soit je laisse comme cela et je reprends le tout plus tard.
    Pour l'instant, je ne vois qu'une table "Type de contrat pub" et une table "Images du client" à rajouter.
    Ce qui impliquerait d'avoir à extraire les images clients de l'actuelle table pour informer la table "Images du client".
    J'ai le temps de le réaliser avant d'avoir bcp de contrat pub chez moi...
    Sinon, avec mes premiers contrats, je peux envisager de le financer en le faisant faire par quelqu'un qui a les connaissances.
    2)
    Me faire aider ici en exposant le projet dans son détail...
    Cela est il envisageable?

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 227
    Points : 81
    Points
    81
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Manipuler une table est extremement simple.
    Tu peux faire un INSERT INTO TABLE SELECT champ1,champ2 FROM table
    Ou meme depuis Phpmyadmin copier les champs.
    Ce qui sous entends que le moment venu, je pourrais facilement diviser le contenu de mes tables et faire évoluer ma base vers du relationnel?

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 227
    Points : 81
    Points
    81
    Par défaut
    Citation Envoyé par riete Voir le message
    Je me permet d'ajouter une troisième option si tu le veux bien.
    3) Lire un bouquin ou un bon tutoriel sur php et MySQL pour commencer à mettre les mains dans le cambouis.

    Il me semble que ton projet est un bon point de départ pour apprendre les bases de données relationnelles (MySQL) et php. Si tu le souhaite bien entendu ;-)
    Oui,
    merci pour ces encouragements...
    Je vais me mettre aux bases relationnelles, c'est décidé.
    J'ai regardé un peu en travers sur le net et c'est beaucoup de choses à apprendre...

    Je vous présente mon projet, si quelqu'un est dispo pour m'aider il est le bienvenu car je rame pas mal, l'informatique n'étant pas ma spécialité....

    Voici donc le bébé:

    Il s'agit d'un annuaire thématique de sociétés.
    Les sociétés pourront mettre des pubs sur mon site.
    Il y aura plusieurs type de pub possible. (Pub en page d'accueil, pub en sous rubrique etc...)
    Il y aura la possibilité d'intégrer des photos au cas où l'on souhaite une page perso sur le site.

    J'imagine donc les tables comme suit:

    Table "clients":
    Id société
    nom société
    url
    categorie de société (artisan, groupe, sarl, etc...)(peut etre une table contenant les catégories?)
    adresse 1
    adresse 2
    ville
    code postal
    téléphone
    fax
    contact (non communiqué sur le site)
    commentaires (série de mots clés pour le moteurs de recherche)
    Info personnelles (non communiquée sur le site)

    Table "type contrat" (les sociétés mettront des pub sur le site):
    id contrat
    type contrat
    debut contrat
    fin contrat


    Table "contenu pub": (1 image bannière + 3 images par client + 1 vignette)
    Id pub
    Texte pub
    image banniere
    Image1
    Image2
    Image3
    Vignette


    Mon problème:
    Cette structure est elle bonne?
    Comment mettre en relation ces tables?
    Comment fonctionnent les requetes sur les bases relationnelles.

    Au final, pour avoir vu de loin des bases relationnelles de gros projets, je sais que le mien est ridicule de simplicité pour quelqu'un dont c'est le quotidien.
    Je ne vous cache pas que cela me fait bien ch... d'avoir tant à potasser pour si peu.
    D'autant que je ne serai pas amené à developper d'autres projets par la suite mais bon, s'il faut le faire...
    Donc être guidé vers l'essentiel serait une aide précieuse.
    Merci pour votre intérêt en tout cas.

  12. #12
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    non ca ne va pas

    je te donne un exemple

    tu as ta table clients "t_client"
    cli_id
    cli_nom
    etc.

    tu as une table de réference pour les types de contrat "tr_contrat"
    con_id
    con_nom
    con_prixmensuel

    et une table pour lier le client avec un type de contrat "tl_contrat_client"
    concli_id <-- clef primaire servant uniquement d'index
    concli_numero <-- numero du contrat
    con_id <-- clef étrangère faisant reference a ta table tr_contrat
    cli_id <-- clef étrangère faisant reference a ta table t_client
    concli_datedebut
    concli_datefin

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 227
    Points : 81
    Points
    81
    Par défaut
    Ok merci Sabotage,

    Je vois ce que tu veux dire.
    Je vais faire un modèle sur la base que tu me donnes et je te la propose à la critque.
    Me confirmes tu que le projet semble assez simple?

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 227
    Points : 81
    Points
    81
    Par défaut
    Salut Sabotage,

    Merci pour tes conseils...

    Je te présente donc la structure:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    t_client:
    ent_id
    ent_nom
    login
    password
    ent_url
    ent_categorie
    ent_conttact
    ent_telephone1
    ent_telephone2
    ent_fax
    ent_email
    ent_adresse1
    ent_adresse2
    ent_codepostal
    ent_ville
    ent_villeprestation
    ent_commentaires
    ent_infoperso
     
    tr_contrat:
    cont_id
    cont_type
    cont_prix
     
    tl_contrat_pub_entreprise:
    contcli_id
    cont_id
    cli_id
    pub_id
    contcli_numero
    contcli_datedebut
    contcli_datefin
     
    tr_categorie:
    cat_id
    cat_nom
    Question:
    Quel est l'interet de l'id quand dans le même temps il y a un numero de contra client?

    Est ce que je peux mettre 2 tables liées dans une table ref (tl_contrat_pub_entreprise)?

    Dois-je créer une table catégorie entreprise, elles seront nombreuses mais prédéfinies?

    Je vois par exemple dans le projet pour la société de photo qu'Evilam m'a fait parvenir en PDF qu'il y a un champs pub dans la table client… Pourrais-je supprimer ma table pub dans ce cas?

Discussions similaires

  1. Introduction aux techniques de base pour l'IA
    Par SpiceGuid dans le forum Intelligence artificielle
    Réponses: 8
    Dernier message: 10/12/2011, 15h35
  2. Réponses: 2
    Dernier message: 01/06/2010, 09h20
  3. Réponses: 14
    Dernier message: 28/05/2010, 15h16
  4. Avis sur la structure d'une base de données
    Par ange_dragon dans le forum Modélisation
    Réponses: 2
    Dernier message: 29/05/2007, 15h45
  5. Votre avis sur la structure de mes tables
    Par mat67000 dans le forum Access
    Réponses: 5
    Dernier message: 07/03/2007, 16h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo