p
u
b
l
i
c
i
t
é
publicité
  1. #1

    Homme Profil pro
    Inscrit en
    janvier 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : janvier 2013
    Messages : 12
    Points : -1
    Points
    -1

    Par défaut Stocker des données complexes dans la base de données

    je voulais stocker des données de type complexe (classe), quelqu'un à une idée comment quel type dois-je données au colonne dans la table (colonne Tuteur dans l'exemple )???, et est-ce que je dois stocker chaque objet séparément ???

    mon code ça ressemble a ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public Class Livre
    {
          public String Titre {get; set;}
          public T_Autheur Autheur {get; Set;}
    }
     
    public Class T_Autheur 
    {
          public String Nom {get; set;}
          public String Prenom{get; set;}
    }
    merci d'avance

  2. #2
    Membre Expert

    Homme Profil pro
    Software Developer
    Inscrit en
    mars 2008
    Messages
    1 473
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Software Developer

    Informations forums :
    Inscription : mars 2008
    Messages : 1 473
    Points : 2 292
    Points
    2 292

    Par défaut

    Poses plutot cette question dans le forum base de données.

    Le type "varchar(max)" devrait te suffire (SQL Server).
    Tu peux aussi jeter un oeil au type "blob".

  3. #3
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    juin 2012
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : juin 2012
    Messages : 84
    Points : 156
    Points
    156

    Par défaut

    Hello,

    C'est plutot un problème de SGBD mais bon ^^.

    Les langages de gestion de base de données pas magique et chaque champ ne peut être qu'un type basique connu du SGBD que tu utilises.

    Dans ton cas tu devras crée 2 tables.

    Une table auteur avec comme champ Nom et Prénom en Varchar, plus un identifiant pour faire les choses bien.
    Une table Livre avec un identifiant aussi, un varchar Titre et une clé étrangère référençant l'auteur de la table Auteur.

    Pour Sql server ça donnerait un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    CREATE TABLE LIVRE
    (ID_Livre integer primary key,
    Titre varchar(255),
    Auteur_ID integer references AUTEUR(ID_Auteur));
     
    CREATE TABLE AUTEUR
    (ID_Auteur integer primary key,
    Nom varchar(255),
    Prénom varchar(255));
    Cdlt,
    MvK
    Les questions ne sont pas obligées d'avoir du sens. Mais les réponses, si.
    Terry Pratchett (Procrastination)

  4. #4

    Homme Profil pro
    Inscrit en
    janvier 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : janvier 2013
    Messages : 12
    Points : -1
    Points
    -1

    Par défaut

    si j'ai bien compris, dans ce cas la colonne Auteur dans la table Livre va stocker le nom et le prénom de l'auteur??

  5. #5
    Membre Expert

    Homme Profil pro
    Software Developer
    Inscrit en
    mars 2008
    Messages
    1 473
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Software Developer

    Informations forums :
    Inscription : mars 2008
    Messages : 1 473
    Points : 2 292
    Points
    2 292

    Par défaut

    Citation Envoyé par danoi18 Voir le message
    si j'ai bien compris, dans ce cas la colonne Auteur dans la table Livre va stocker le nom et le prénom de l'auteur??
    Veux-tu enregistrer de multuiples classes C# comme moyen de sauvegarde dans ta base de données ou bien n'as tu que ces 2 classes et prévois-tu d'exploiter les informations associées aux classes?

  6. #6
    Membre éprouvé

    Profil pro
    Inscrit en
    juin 2002
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : juin 2002
    Messages : 327
    Points : 475
    Points
    475

    Par défaut

    Si tu veux pouvoir stocker des représentations d'objects complexes sans avoir à constamment modifier ta base de données, il faut faire appel à un support de représentation générique comme JSON ou XML.

    Personnellement, j'irais avec JSON.

    CODE [=>Sérialisation] JSON [=>SQL] nvarchar(MAX)

    et vice versa

    C'est pas ce qui est deplus efficace mais en développement logiciel, il faut parfois sacrifier la performance pour la flexibilité. Alors si la performance n'est pas un problème dans ton système, vas-y avec un système générique.

  7. #7

    Homme Profil pro
    Inscrit en
    janvier 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : janvier 2013
    Messages : 12
    Points : -1
    Points
    -1

    Par défaut

    Exactement 'alex_vino' j'ai multiple classes en C# reliée entre aux avec des instances de ces classes je récupère des données et je les stockes dans la base, certain de ces classes son des types de propriétés et je trouve pas comment stocker ces propriétés de type complexes, es ce que je dois mettre cette propriété comme clés étrangère qui me permet de récupérer les données d'un enregistrement??
    merci pr d'avance

  8. #8
    Expert Confirmé
    Homme Profil pro
    Inscrit en
    février 2003
    Messages
    1 764
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Belgique

    Informations forums :
    Inscription : février 2003
    Messages : 1 764
    Points : 2 997
    Points
    2 997

    Par défaut

    Citation Envoyé par danoi18 Voir le message
    Exactement 'alex_vino' j'ai multiple classes en C# reliée entre aux avec des instances de ces classes je récupère des données et je les stockes dans la base, certain de ces classes son des types de propriétés et je trouve pas comment stocker ces propriétés de type complexes, es ce que je dois mettre cette propriété comme clés étrangère qui me permet de récupérer les données d'un enregistrement??
    merci pr d'avance
    Tu devrais regarder comment modéliser une base de données.
    Sinon tu auras les tables :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Livre (Id,Titre,Id_Auteur)
    Auteur (Id,Nom,Prenom)
    Exemple de Record dans ta DB :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Livre "1,Germinal, 1", "2,Rhinocéros,2","3,La Bête humaine,1"
    Auteur "1, Zola, Emile", "2, Ionesco,Eugène"
    Dans ta classes Livre et Auteur tu dois rajouter les champs Id.
    Pour les références, tu as deux possiblité:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    -Livre.Autheur.Id 
    -Livre.IdAutheur
    la 2eme solution permet de faire du lazy load.
    Je ne suis qu'un pauvre débutant alors ne frappez pas si mes idées ne sont pas bonnes

  9. #9

    Homme Profil pro
    Inscrit en
    janvier 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : janvier 2013
    Messages : 12
    Points : -1
    Points
    -1

    Par défaut

    merci Benoit c'est ce que je voulais, là j'ai compris

Discussions similaires

  1. Réponses: 5
    Dernier message: 09/09/2011, 23h07
  2. Liste des tables existantes dans une base de données
    Par Lorenzole+bo dans le forum VBA Access
    Réponses: 1
    Dernier message: 13/11/2007, 20h15
  3. Réponses: 2
    Dernier message: 23/11/2006, 16h19
  4. Réponses: 3
    Dernier message: 11/03/2006, 17h47
  5. Intégration des fichier XML dans une base de données MySQL
    Par bebemoundjou dans le forum XQUERY/SGBD
    Réponses: 8
    Dernier message: 25/11/2005, 22h41

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