Visualizzazione risultati 1 fino 5 di 5

Discussione: consiglio organizzazione tabelle

  1. #1
    express non è connesso AlterVistiano
    Data registrazione
    08-08-2003
    Residenza
    Cagliari/Pisa
    Messaggi
    799

    Predefinito consiglio organizzazione tabelle

    come organizzereste voi il database di una galleria di fotografie nella quale volete inserire: la fotografia stessa, la sua thumbnail, titolo, data, descrizione, [altri elementi testuali]; nel caso in cui vogliate che detta galleria sia multilingue e NON sapete a priori il numero di lingue in cui deve essere tradotta?
    (spero di essere stato sufficientemente chiaro, sennò poi heracleum mi sgrida )

    io avevo pensato a tabelle separate: una per gli elementi puramente grafici (fotografia, thumbnail) e poi una tabella per ogni lingua con titolo data etc con un nomi del tipo: tabella_immagini e it_tabella_immagini, en_tabella_immagini, facilmente riconducibili alla lingua. voi che ne pensate?
    http://express.altervista.org
    Dato un lavoro, si possono scegliere due sole delle seguenti caratteristiche: veloce, economico, di qualità.
    Così capita che se un lavoro è veloce ed economico non sarà di qualità; se è veloce e di qualità non sarà economico; se è economico e di qualità non sarà veloce.

  2. #2
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Citazione Originalmente inviato da express
    ... nel caso in cui vogliate che detta galleria sia multilingue e NON sapete a priori il numero di lingue in cui deve essere tradotta?
    [omissis]
    io avevo pensato a tabelle separate: una per gli elementi puramente grafici (fotografia, thumbnail) e poi una tabella per ogni lingua con titolo data etc con un nomi del tipo: tabella_immagini e it_tabella_immagini, en_tabella_immagini, facilmente riconducibili alla lingua. ...
    Come idea non è male, ma alla fine non trovi che tu le lingue in cui puoi tradurre la pagina le conosci eccome...?

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  3. #3
    express non è connesso AlterVistiano
    Data registrazione
    08-08-2003
    Residenza
    Cagliari/Pisa
    Messaggi
    799

    Predefinito

    se lo dovessi fare tutto io il sito sarei d'accordo con te, ma siccome non so chi ci lavorerà dopo di me e mi è stato richiesto esplicitamente questo, allora devo fare la struttura il più flessibile possibile
    http://express.altervista.org
    Dato un lavoro, si possono scegliere due sole delle seguenti caratteristiche: veloce, economico, di qualità.
    Così capita che se un lavoro è veloce ed economico non sarà di qualità; se è veloce e di qualità non sarà economico; se è economico e di qualità non sarà veloce.

  4. #4
    L'avatar di Evcz
    Evcz non è connesso Utente storico
    Data registrazione
    31-05-2002
    Residenza
    Vicenza
    Messaggi
    5,670

    Predefinito

    una tabella con le foto, id_foto etc....

    poi una tabella per gli elementi testuali

    id_foto (foreing key che punta all'id della tabella di prima), lingua (en/it/de/fr etc..), vari campi testuali nella lingua specificata

    primary (id_foto, lingua)

    e poi te la giostri facendo il select della lingua che ti serve dalla seconda tabella e un join con la prima... e ti ritrovi la "vista" nella lingua che ti serve... (se una foto non ha il testo tradotto viene semplicemente ignorata :D ) ;)

    così è scalabile al massimo... se aggiungi una lingua non devi modificare nulla :D

    per questioni di prestazioni il campo "lingua" puoi farlo unsigned int anzichè char(2) e fissare tu una legende: 0 = ita, 1=eng etc. etc. etc.


    la soluzione di una tabella per lingua che proponi tu potrebbe andar bene comunque, avresti sicuramente migliori prestazioni (se hai la tabella di testi da 150mb per lingua... e hai 10lingue.. meglio operare su tabelle singole che no su una tabella unica da 1.5gb :D )... però perdi molto in scalabilità e flessibilità...

    tipo se un giorno ti trovi con 10 lingue... e dici... spetta che cambio il campo testo e da "text" lo porto a "blob"... li rischi di dimenticarti pezzi per strada... e comunque è una rottura (cambiar tutte le tabelle...) :D

    e poi la base di dati che otteresti non è definitiva e va ritocatta ad ogni espansione... invece penso sia + semplice cambiare soltanto un campo del form che fa il submit via php e aggiungere anche l'id lingua=11 sapendo che tutto il resto (la base di dati) poi funzionerà tranquillamente senza preoccuparsi di smanettare sulle tabelle ;)
    Ultima modifica di Evcz : 15-12-2005 alle ore 23.41.02
    There are three kinds of people in this world: people who watch things happen ... people who complain about things that happen ... and people who make things happen...

  5. #5
    express non è connesso AlterVistiano
    Data registrazione
    08-08-2003
    Residenza
    Cagliari/Pisa
    Messaggi
    799

    Predefinito

    credo di aver capito... cmq la mia soluzione mi sembra un attimino più pulita, anche perchè nel momento in cui dovessi aver bisogno di cambiare la struttura della tabella, anche se dovessi modificare un solo campo si tratta cmq di modifiche in parallelo e cmq facilmente scriptabili... cmq grazie mille per l'interessamento e chissà che magari un giorno vi troverete ad utilizzare il mio script per questa galleria di foto
    http://express.altervista.org
    Dato un lavoro, si possono scegliere due sole delle seguenti caratteristiche: veloce, economico, di qualità.
    Così capita che se un lavoro è veloce ed economico non sarà di qualità; se è veloce e di qualità non sarà economico; se è economico e di qualità non sarà veloce.

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •