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

Performance Web Discussion :

Schéma base de données


Sujet :

Performance Web

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 310
    Points : 132
    Points
    132
    Par défaut Schéma base de données
    Bonjour,

    J'aimerai avoir votre avis concernant la modification de ma base de données mysql, attaqué via php.

    Je propose 2 types d'objets différents à mes visiteurs, appelons les objets A et B. Actuellement j'ai donc 2 tables "table_objetA" et "table_objetB" dont les colonnes en commun sont ID (clé primaire), email, et la date ; plus des caractéristiques particulières pour chacun des objets. Les colonnes pour les 2 tables sont donc différentes entres elles. Lorsqu'un visiteur achète l'un ou l'autre ou les deux objets, j'insère les informations dans les tables en question.

    Mon soucis est lorsque l'utilisateur dans son 'dashboard' veut récupérer les informations de ses achats, avec un ID particulier.
    Je fais beaucoup trop de requêtes, car je dois requêter une fois dans ma table "table_objetA" si l'ID existe et si oui alors j'affiche, puis idem dans "table_objetB", sans savoir s'il y a des données ou non.. Du coup tout ça, c'est lent.

    A l'avenir il est fort probable qu'un 3ème type voit le jour, j'aurais donc "table_objetC"...

    Ma question : comment optimiser mes tables ? Je me doute qu'il y a un moyen pour factoriser cela, mais comment ?!
    Je suis prêt à repartir from scratch si besoin.

    En espérant avoir été clair, Merci !

  2. #2
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2014
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Août 2014
    Messages : 218
    Points : 493
    Points
    493
    Par défaut
    Bonjour

    Désolé, mais c'est vraiment nébuleux.

    Que contiennent les tables "objet_a" et "objet_"b ?
    Pourquoi n'y a t-il pas de table "utilisateur" ?
    Beaucoup trop d'hommes viennent au monde : l'Etat a été inventé pour ceux qui sont superflus. (Friedrich Nietzsche)

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 310
    Points : 132
    Points
    132
    Par défaut
    Non, il n'y a pas de table utilisateur.

    Table_A :
    id (incrémental, cle primaire), num_serie, email_user, date_achat, quantité, coloris, achat_confirmé (boolean)

    Table_B :
    id (incrémental, cle primaire), num_serie, email_user, date_achat, quantité, type_de_bois, structure (boolean), achat_confirmé (boolean)

    num_serie étant un numéro unique que je génère, que l'utilisateur connait, qui permettra ensuite de rechercher tous ses achats pour affichage dans le dashboard.

    Oui c'est moche..

  4. #4
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2014
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Août 2014
    Messages : 218
    Points : 493
    Points
    493
    Par défaut
    C'est déjà pas très catholique de ne pas avoir de table utilisateur.

    Ensuite, je ne comprends pas l’intérêt d'avoir une table par type de produit vendu, et de ne pas avoir de tables répertoriant les produits à vendre.

    Bref, ça ne ressemble pas à grand chose en première approximation.
    Beaucoup trop d'hommes viennent au monde : l'Etat a été inventé pour ceux qui sont superflus. (Friedrich Nietzsche)

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 310
    Points : 132
    Points
    132
    Par défaut
    Au début il n'y a avait qu'un produit donc ça fonctionnait bien maintenant l'offre grandit donc forcément ça devient usine à gaz..
    C'est pour cela que je viens demande de l'aide.

    Que me conseilles-tu ?

    Une table "utilisateur" (id, email)
    Une table "produits" (quelles colonnes ?!)
    D'autres ?

  6. #6
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2014
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Août 2014
    Messages : 218
    Points : 493
    Points
    493
    Par défaut
    A minima :

    - une table "client"
    - une table "produits"
    - une table "commandes" (a minima : client, date commande, état de la commande, montant payé, etc ...)
    - une table "ligne de commande" (a minima: id de commande, id de produit, quantité)


    Il s'agit bien sur d'un strict minimum, bien insuffisant dans la pratique (et à condition de ne pas gérer encaissement, avoirs, remises, stocks, historique de prix, etc ...)

    Pour le détail ne connaissant pas ton métier, je ne peux pas du tout répondre à ta place.
    Beaucoup trop d'hommes viennent au monde : l'Etat a été inventé pour ceux qui sont superflus. (Friedrich Nietzsche)

Discussions similaires

  1. Nettoyage schéma base de données
    Par jojo971 dans le forum Oracle
    Réponses: 2
    Dernier message: 23/10/2012, 10h08
  2. Schéma base de données
    Par LeGnome12 dans le forum MySQL
    Réponses: 3
    Dernier message: 23/01/2011, 14h24
  3. Schéma base de donnée
    Par smartmobili dans le forum Langage SQL
    Réponses: 1
    Dernier message: 19/11/2009, 22h05
  4. Réponses: 2
    Dernier message: 26/06/2009, 14h23
  5. Annotations Hibernate et schéma Base de données MySQL
    Par bdtatr dans le forum Hibernate
    Réponses: 1
    Dernier message: 08/07/2007, 07h12

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