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

Hibernate Java Discussion :

component sur plusieurs tables/objets


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 45
    Par défaut component sur plusieurs tables/objets
    bonjour je commence avec hibernate et je me posais une question :

    comment peut on crée un type personnelle?
    en clair, je veux créer un attribut de type Adresse ( qui comprend plusieurs champs String et autre : residence, numero [String], type de rue [String],rue [String], Ville <many-to-one class="vile">,...).
    Si je ne l'utilisai que dans une table je ferai un component je pense que ca sert a ca. mais la j'ai plusieurs objets/tables qui utiliseront ce type d'attribut,(des Personnes, des entreprises, des secrétariast, ...). j'ai plusieurs solutions :
    - répéter le "component" dans chaque table
    - créer une table adresse avec un lien unidirectionnelle pour ne pas y trouver de clé etrangere.
    - autre comme usertype mais la faudrai m'expliqué car dans la doc ils ne sont pas très documenté

    Laquelle vous parait la plus aproprié

  2. #2
    Membre expérimenté Avatar de Pikwik
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 237
    Par défaut
    En fonction de ta relation tu fais un many-to-one ou un bag, et une table pour la class Adresse. Cela me parait beacoup plus simple et bien plus logique. Globalement, mieux vaut plusieures tables petite qu'une grosse où tu ajoutes plein de champs.

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 45
    Par défaut
    merci mais j'ai oublier de precisé que je vais avoir plusieurs catalogues donc le problème est que j'aurai 1 table adresse par catalogue sinon j'aurai une seule table avec l'ensemble des adresses de toutes mes applications( 1 application = 1 catalogue)

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    365
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Janvier 2006
    Messages : 365
    Par défaut
    Bonjour,
    A mon avis, la première solution (component dans chaque table) est meilleure en termes de performance. Sauf si un objet Adresse possède une identité propre dans ton modèle, je ne vois pas pourquoi tu aurais besoin de définir une table spéciale pour contenir toutes les adresses. Or, si une adresse n'a de l'intérêt que lorsqu'elle appartient a une Personne ou Entreprise, le mieux c'est d'enregistrer les informations d'adresse dans la même table que Personne ou Entreprise. Cela te permet d'avoir une base de données dénormalisée de ce point de vue et d'éviter des "inner join" pour charger l'adresse chaque fois que tu charge une personne ... En tout cas, tu devrais décider en tenant compte des performances et en considérant ce qu'est véritablement l'importance d'une entité adresse par rapport aux autres entités dans ton modèle.
    a++

  5. #5
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    D'accord avec manblaizo, la pluspart du temps tu te compliques la vie avec les tables adresses séparées.
    Il ne faut pas oublier les contraintes liées, dans le genre :
    - une adresse référencée dans une facture émise ne doit plus pouvoir être changée
    - 12 rue des Tulipes représente la même adresse que 12 RUE DES TULIPES (et on ne parle même pas des blancs supplémentaires qu'on pourrait trouver)
    etc...

    Donc, je trouve la solution 1 plus intéressante, au moins tu peux centraliser les contrôles au niveau de cette classe.

    Ce n'est qu'un avis...
    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 45
    Par défaut
    ok je pense aussi car une table d'Adresse serai assez lourde mais il n'existe pas un racourci pour evité de devoir recopier de compomemt a chaque fois style
    <property name="adressePro" type="Adresse" ou class="Adresse"/ > ??

  7. #7
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    Est ce que chaque adresse pourrait appartenir à une personne, une entreprise etc en même temps ?
    Si c'est le cas, tu vas duppliquer l'information dans n tables.
    Qu'en penses-tu ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Question pour une requête sur plusieurs tables/objets
    Par pontus21 dans le forum Hibernate
    Réponses: 54
    Dernier message: 01/06/2009, 18h37
  2. Requête sur plusieurs tables/objets
    Par pontus21 dans le forum Hibernate
    Réponses: 2
    Dernier message: 29/04/2009, 14h43
  3. Encore une requête complexe sur plusieurs tables
    Par DenPro dans le forum Langage SQL
    Réponses: 5
    Dernier message: 09/12/2003, 19h05
  4. Requête complexe sur plusieurs table
    Par DenPro dans le forum Langage SQL
    Réponses: 13
    Dernier message: 25/11/2003, 17h50
  5. A propos d'une requête SQL sur plusieurs tables...
    Par ylebihan dans le forum Langage SQL
    Réponses: 2
    Dernier message: 14/09/2003, 16h26

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