[risolto] Ottimizzare salvataggio dati

Asia2810

Nuovo Utente
7 Mar 2014
4
0
0
Salve,
Sono in procinto di iniziare un nuovo progetto e mi sto chiedendo qual è il modo migliore per salvare nel database dei dati in multilingua.
Mi spiego meglio, la mia necessità è quella che durante l'estrapolazione dei dati se non è stata inserita nella lingua settata una traduzione quei dati mi verranno stampati nella lingua di default ,che è definita da un'altra parte.
In un vecchio progetto finito da poco, sempre in multilingua, per ovviare questo problema durante il salvataggio se non venivano settati i contenuti in tutte le altre lingue, tranne quella di default che risultava obbligatoria, automaticamente in quella lingua venivano settati quelli che erano i contenuti della lingua di default.
Per esempio se inserivo una news e per quella news non compilavo i dati nella lingue Inglese ma in Francese e Italiano si, nel database le righe erano i seguenti:

id | titolo | sottotitolo | descrizione | lingua
1 | titolo italiano | sottotitolo italiano | descrizione italiana | it
2 | titolo italiano | sottotitolo italiano | descrizione italiana | en
2 | titolo francese | sottotitolo francese | descrizione francese | fr

Quindi durante l'estrapolazione dei dati avevo sempre un record nel database con riferimento a qualsiasi lingua anche se non erana stata settata. Questo comporta che per ogni news, o altro, ho 1 x numero lingue record salvati.
Visto che, come dicevo in alto, devo iniziare questo nuovo progetto mi chiedevo se era il caso di rimanere su questa strada oppure salvare nel db solo quello che è veramente stato inserito e quindi se non trovo traduzione per quella lingua andare a pescare i dati nella lingua di default e questo comporta fare una query più articolata.
Cosa mi consigliate? Sono una programmatrice alle prime armi quindi perdonatemi se è una domanda stupida ma vorrei migliorare il mio modo di lavorare.
Grazie in anticipo a chi risponderà :eek:
 

flameseeker

Utente Attivo
27 Nov 2013
699
0
0
Il modo in cui è strutturata la tabella è giusto.
A questo punto personalmente ti consiglio di non salvare i record vuoti per le altre lingue se effettivamente non hai creato quei contenuti e non dovresti scervellarti neanche nel redirezionamento della risorsa ad un altra lingua (perché se un francese cerca una cosa in francese sul tuo sito che sembra avere articoli francesi e poi lo rimandi ad una versione italiana, penso sia peggio che non dirgli fin da subito che non disponi di quel contenuto).

Semplicemente se un preciso contenuto non è disponibile in una precisa lingua dovresti agire di conseguenza e non segnalarlo proprio nel sito e la cosa dovrebbe risultarti facile vista la struttura della tua tabella.

Se invece ci tieni a rendere disponibile comunque una versione del contenuto puoi sempre proporre una traduzione della pagina nella tua lingua base gestita con le api google translate.

In ogni caso non vedo un reale vantaggio nel mantenere record inutili nel db.
 

Asia2810

Nuovo Utente
7 Mar 2014
4
0
0
Il modo in cui è strutturata la tabella è giusto.
(perché se un francese cerca una cosa in francese sul tuo sito che sembra avere articoli francesi e poi lo rimandi ad una versione italiana, penso sia peggio che non dirgli fin da subito che non disponi di quel contenuto).
Questo punto, quello di stampare comunque qualcosa, è una richiesta esplicita del cliente. Io qui ho riportato l'esempio banale delle news ma in realtà questo discorso è più che altro per la gestione di un catalogo con dei prodotti che nel caso non si predisponga delle schede tecniche o le altre cose nella lingua selezionata debbono essere riportati quelli che sono i contenuti nella lingua di default. Siccome ci sarà un'importazione dei prodotti e di questi non ci saranno delle traduzioni finchè non saranno tutte inserite dal cliente è fondamentale stampare quelli che sono i valori nella ligua di default. Continui a credere che sia meglio non salvare i dati in tutte le lingue anche dopo questa mia precisazione?
Grazie comunque della risposta
 

flameseeker

Utente Attivo
27 Nov 2013
699
0
0
Personalmente continuo a pensare che sia meglio non archiviare quel dato anche perché, nel peggior scenario che riesco ad immaginarmi, la tua query includerà una clausola di ricerca del tipo
Codice:
... WHERE lingua LIKE 'it' OR lingua LIKE 'fr'
-- Cerca l'articolo dove la lingua è quella base oppure quella richiesta

Dopo che il database ti ha ritornato le informazioni, puoi verificare con lo stesso riferimento utilizzato per fare la richiesta se nel recordset è effettivamente presente la riga associata alla lingua dell'utente.

Se c'è la servi, altrimenti gli passi la riga della lingua base.


Se nella tua applicazione risulta complesso gestire in questo modo il problema allora dovresti adottare la soluzione che ritieni più opportuna, è pur sempre vero che io ho una visione del problema limitata solo a ciò che mi scrivi qui.
 
Discussioni simili
Autore Titolo Forum Risposte Data
L (risolto) MySQL 0
B getElementById su piu id(Risolto) Javascript 7
L Esercitarsi con Js [RISOLTO] Javascript 4
C [RISOLTO]Inserimento variabile php in input html PHP 20
L risolto visualizzazione e ordinamento dati PHP 1
moustache [RISOLTO] SQL PHP IIS PHP 8
Sergio Unia Ricezione email con destinatari multipli [Risolto] PHP 2
L update tabelle in php mysql [risolto] PHP 6
M Semplice visualizzatore di immagini [risolto con plugin wp] PHP 7
L [RISOLTO] Stampa a video risultato count in html PHP 13
L [RISOLTO] Eliminare una discussione creata PHP 3
tomorc [HTML] Problema con scroll bar (risolto) HTML e CSS 0
A [PHP] Problema query insert [RISOLTO] PHP 14
B [PHP] recuperare IP dei server in load balancing [RISOLTO] PHP 3
K [RISOLTO] Problema Griglia Php+Mysql PHP 13
S [RISOLTO] aggiorna tabella da select option asp classic Classic ASP 7
elpirata [RISOLTO][Javascript] Datapicker e autocompletamento campo input Javascript 2
elpirata [RISOLTO][Mysql] Problema insert valori apostrofati MySQL 1
elpirata [RISOLTO][Mysql] Contare le occorrenze in un campo tipo varchar MySQL 2
G [MS Access] Gestione biglietti [RISOLTO] MS Access 2
G [MS Access] Casella combinata & Query [RISOLTO] MS Access 4
G [MS Access] Query mese corrente con conteggio [RISOLTO] MS Access 2
M [RISOLTO]Windows media player non mi funziona più su win 10 pro 64 bit Windows e Software 2
C [RISOLTO][PHP] Errore di sintassi PHP 8
IT9-Gpp [RISOLTO] Leggere variabile restituita da success Ajax 3
Kolop [RISOLTO][PHP] Problema Pagination PHP 2
C [RISOLTO][PHP] Funzione ONclick PHP 14
C [RISOLTO][PHP] Conteggio righe di una tabella PHP 4
N [PHP] Utilizzo variabili di sessione [Risolto] PHP 13
Tommy03 [RISOLTO][PHP] Webserver o devserver? PHP 2
Sergio Unia Recupero dati da una vecchia versione MySql [Risolto] MySQL 4
spider81man [PHP] Problemi cancellazione dato su DB [RISOLTO] PHP 1
A [RISOLTO]Inserimento Immagini da pc a MySql PHP 15
A [PHP] RISOLTO Invio Mail con Tabella PHP 2
felino Risolto - [Wordpress][WooCommerce] PayPal Checkout e campi di fatturazione WordPress 2
elpirata [PHP][RISOLTO] Sommare gli importi estratti da un ciclo while PHP 3
elpirata [PHP][RISOLTO] Effettuare la somma dei tempi di lavorazione PHP 3
elpirata [PHP] [RISOLTO]Sovrascrivere testo in una tabella PHP 2
A [RISOLTO]Recuperare dati inviati con json tramite php PHP 4
C [RISOLTO][PHP] Passaggio variabili senza refresh di pagina PHP 7
elpirata [PHP][RISOLTO] Errore di tipo Notice: Undefined index - Come risolvere quando si hanno tante var PHP 10
S Problema in PHP per invio file XML - RISOLTO- PHP 8
A [Javascript] [RISOLTO] Doppio "submit", in uno stesso "Form" , che puntino ad "action" diversi Javascript 1
marino51 [Risolto]videochat di messenger ha smesso di funzionare sul telefonino Smartphone e tablet 1
A [Javascript] [HTML] RISOLTO...Allungare un box all'apertura della pagina No Mouse over Javascript 9
ken_korn [Javascript][Risolto] browser.tab.Tabs.favIconUrl non funziona Javascript 5
A [RISOLTO] HighChart e PHP PHP 4
A [RISOLTO] PHP Selezionare tutti i file con stessa estensione PHP 2
A [RISOLTO] Table elaborata da codice PHP con dati da DB non visualizzata in IFRAME PHP 15
T [Photoshop] Problema creazione pennello personalizzato [RISOLTO] Photoshop 3

Discussioni simili