Riferimenti / tabelle di consultazione e tabelle di riferimento multilingue con enumerazione

1

Utilizzerò le tabelle di riferimento per la prima volta, quindi ho alcune domande a riguardo.

Tabella di esempio

------------------------
id | description       |
------------------------
1  | Some description1 |
2  | Some description2 |
3  | Some description3 |
------------------------

1) Per aumentare la leggibilità del codice, desidero creare enumerazioni come nell'esempio seguente. È questa la migliore pratica per fare questo? Cosa ne pensi?

    public enum JobType {
        SOME_DESC1((short) 1), SOME_DESC2((short) 2), SOME_DESC3((short) 3);

        private Short value;

        JobType(Short value) {
            this.value = value;
        }

        public Short getValue() {
            return value;
        }
    }

2) Se volessi che le tabelle di riferimento fossero multilingue, come dovrei farlo? Devo creare tabelle come nell'esempio qui sotto? Hai altri suggerimenti?

job_type -  job_translation        -   language
   id          job_id    (pk-fk)       lang_code
              lang_code  (pk-fk)       
             description  
    
posta mnesimi 22.11.2018 - 14:50
fonte

1 risposta

0

1. enumerazioni per le tabelle di riferimento

Dipende da cosa fai con la tua tabella di riferimento.

Se la tabella di riferimento è parte del tuo modello di dati, ma il tuo codice non ha davvero bisogno di sapere cosa c'è dietro, allora non usare tali enumerazioni. Il vantaggio è che manterrai la flessibilità ro aggiungendo nuovi riferimenti senza modificare il codice. Esempio tipico:

  • codice postale
  • prefisso internazionale
  • categoria di clienti

Se il tuo codice ha bisogno di conoscere il riferimento a causa di alcune regole, comportamenti, ecc. specifici, allora tale enum potrebbe aiutare a rendere il codice più leggibile. Fai attenzione però, perché crei un aggancio difficile tra codice e dati (quindi forse chiamalo sys_id anziché id per attirare l'attenzione su questo rischio).

2. Riferimenti multilingue

Sì, esattamente. Il solito modo è di memorizzare il testo di riferimento con un codice lingua e un id.

Ciò semplifica il supporto di tutte le lingue che vuoi.

    
risposta data 22.11.2018 - 15:55
fonte

Leggi altre domande sui tag