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

MS SQL Server Discussion :

traduction de certains enregistrements


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert Avatar de bossun
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 359
    Par défaut traduction de certains enregistrements
    hello,

    J'ai certaines tables de ma BD qui contiennent des enregistrements qui doivent être traduits en plusieurs langues.

    par ex j'ai une talble "Statut" qui contient les différents statuts de mes commandes.

    Quel est le meilleur moyen pour traduire les enregistrements?
    j'ai pensé à faire un dédoublement du champ mais je me demandais s il n'y a pas une meilleure méthode?

    merci beaucoup

    bossun

  2. #2
    Membre Expert
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Par défaut
    Bonjour,

    Il y a certainement de meilleures méthodes que de créer une colonne par langue.
    La plus évidente : ajouter une colonne pour indiquer le code ISO de langue http://fr.wikipedia.org/wiki/ISO_639, et modifier la clé primaire de ta table de référence pour inclure cette colonne, afin d'assurer l'unicité code de statut + langue.

  3. #3
    Membre Expert Avatar de bossun
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 359
    Par défaut
    merci pour ta réponse si rapide.

    est-ce que t'arriverais à détailler un peu plus ta méthode (ou un lien web)? j'ai du mal à voir comme ça...

    modifier la clé primaire de ta table de référence pour inclure cette colonne
    comment faire ça?

  4. #4
    Membre Expert
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Par défaut
    Ce sont des principes de base de modélisation des données. Je te suggère de regarder les cours de SQLPro. Notamment
    http://sqlpro.developpez.com/cours/bddexemple/
    http://sqlpro.developpez.com/cours/modelisation/merise/

    Poste le code de création de ta table Statut, pour qu'on te fasse une démonstration pratique.

  5. #5
    Membre Expert Avatar de bossun
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 359
    Par défaut
    et voilà le code...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    CREATE TABLE [dbo].[STATUT](
    	[IdStatut] [uniqueidentifier] NOT NULL,
    	[NomStatut] [varchar](100) COLLATE French_CI_AS NULL,
     CONSTRAINT [pk_STATUT] PRIMARY KEY CLUSTERED 
    (
    	[IdStatut] ASC
    )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY],
    UNIQUE NONCLUSTERED 
    (
    	[IdStatut] ASC
    )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
    ) ON [PRIMARY]

  6. #6
    Membre Expert
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Par défaut
    Voici rapidement un exemple de solution :

    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
     
    CREATE TABLE dbo.LANGUE (
    	cdLangue char(2) NOT NULL CONSTRAINT pk$langue PRIMARY KEY CLUSTERED,
    	Nom varchar(100) NOT NULL CONSTRAINT uq$langue$nom UNIQUE
    )
    GO
     
    CREATE TABLE [dbo].[STATUT](
    	[IdStatut] [tinyint] NOT NULL,
    	[cdLangue] char(2) NOT NULL,
    	[NomStatut] [varchar](100) CONSTRAINT uq$statut$nomStatut UNIQUE,
     CONSTRAINT [pk_STATUT] PRIMARY KEY CLUSTERED 
    (
    	[IdStatut] ASC,
    	cdLangue
    ),
    CONSTRAINT fk$statut$has$langue FOREIGN KEY (cdLangue) REFERENCES dbo.LANGUE (cdLangue)
    )
    GO
    Dans ta table Statut, la contrainte
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    UNIQUE NONCLUSTERED ([IdStatut] ASC)
    est à enlever. Elle était inutile à la base : la clé primaire est déjà une garantie d'unicité.

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

Discussions similaires

  1. Requête supprimant certains enregistrements
    Par marcGR dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 04/03/2008, 18h01
  2. Doutes sur la traduction de certains termes : la liste
    Par Aurelien.Regat-Barrel dans le forum Traduction Penser en C++
    Réponses: 12
    Dernier message: 07/09/2007, 09h07
  3. [VB6] Sélectionner certains enregistrements dans une table
    Par li_causi dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 06/05/2006, 14h28
  4. [Oracle 8i] ne garder que certains enregistrements (COUNT ?)
    Par delphim dans le forum Langage SQL
    Réponses: 13
    Dernier message: 23/02/2005, 14h30
  5. desactiver bouton pour certains enregistrements
    Par GymTonic dans le forum IHM
    Réponses: 7
    Dernier message: 04/01/2005, 23h46

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