Qual è il modo canonico per archiviare le traduzioni dei dati dell'utente?

3

Ho sviluppato alcuni software che consentono ai miei utenti di allegare una descrizione ad alcune informazioni specifiche non linguistiche:

Modello pseudocodice:

item():
  ID
  creationdate
  byline //Only one byline for the object
  description //Only one description for the object

faq:
  faqID
  question
  answer
  itemID //ForeignKey

Quindi questo è fondamentalmente un modello semplice in cui un elemento informativo ha una descrizione e un numero qualsiasi di domande faq ad esso correlate.

Se il mio utente ora desidera avere traduzioni per la sua descrizione e domande faq, qual è il modo canonico per estendere il modello?

Alcuni candidati a cui ho pensato:

  • Aggiungi un campo alias (FK a sé) nelle informazioni e un campo di lingua. Quindi disporre della logica aziendale che trova la lingua desiderata.
    • Upside: i campi obbligatori sono obbligatori per qualsiasi inserimento linguistico. Crei traduzioni parziali. Ti verrà ricordato quando lo schema aggiunge un altro campo di testo.
    • Lato negativo: ora ci sono due tipi di oggetti nella tabella: oggetti lingua principale e oggetti alias.
  • Aggiungi una tabella con tutti i campi specifici della lingua (descrizione) e accedi alla stringa tramite la chiave esterna
    • Upside: clean, tutto è di tipo proprio
    • Lato negativo: più tabelle. Anche la tabella delle FAQ deve in qualche modo assicurarsi che ci sia una traduzione completa per ogni lingua.

Quindi come lo faresti?

    
posta Carlos 27.07.2014 - 19:03
fonte

0 risposte

Leggi altre domande sui tag