Pagina 1 di 5 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 50
  1. #1
    Utente di HTML.it L'avatar di homerbit
    Registrato dal
    Dec 2005
    residenza
    Roma
    Messaggi
    1,380

    [Mssql] table per articoli multilang

    Ciao a tutti, so che quello che sto per chiedervi è qualcosa di "ritrito" ma ogni volta il problema del multilanguage si può presentare in forma diversa, quindi provo a chiedere un vostro consiglio, aiuto
    Veniamo al dunque:
    devo visualizzare degli articoli in almeno 2 lingue, ogni articolo è composto da titolo, testo, immagine, il tutto aggiornato da back-end caricando su mssql.

    La lingua la gestisco mediante le session.

    Gli articoli sono memorizzati nella seguente table:
    titolo, lang (che può contenere it,en), corpo_articolo, id_articolo

    La "sezione" articoli è composta da 2 pagine.
    La pagina articoli.asp visualizza l'elenco degli articoli in db (selezionati in base alla lingua) con un titolo ed un abstract del testo con il classico link "leggi tutto"
    La pagina leggi_tutto.asp viene raggiunta cliccando su "leggi_tutto.asp?id=id_articolo" e visualizza l'articolo per intero mediante query a:

    codice:
    select * from miatabella where lang = "default lang" and id = id_articolo
    Fin qui tutto ok, ma se mentre visualizzo la pagina leggi_tutto.asp?id=id_articolo cambio "lang" ecco che mi trovo con una query non processabile.
    codice:
    select * from miatabella where lang = "nuova lang" and di = id_articolo
    Ho pensato di modificare il link in leggi_tutto.asp?id=titolo, funziona, ma mi pare poco elegante!!

    Mi rendo conto che di fondo c'è un problema strutturale ma non risco a uscirne.
    Spero possiate darmi un'idea, un consiglio

    ciao e grazie cmq!

  2. #2

    Re: [Mssql] table per articoli multilang

    Originariamente inviato da homerbit
    Fin qui tutto ok, ma se mentre visualizzo la pagina leggi_tutto.asp?id=id_articolo cambio "lang" ecco che mi trovo con una query non processabile.
    codice:
    select * from miatabella where lang = "nuova lang" and di = id_articolo
    Ho pensato di modificare il link in leggi_tutto.asp?id=titolo, funziona, ma mi pare poco elegante!!
    sinceramente non ho capito

  3. #3
    Utente di HTML.it L'avatar di homerbit
    Registrato dal
    Dec 2005
    residenza
    Roma
    Messaggi
    1,380
    ciao optime, grazie per l'interessamento.

    Praticamente, se mentre visualizzo un articolo per intero cambio la lingua andrò a fare una nuova select con la "nuova lingua" ad esempio "eng" e l' "id_articolo" che sto visionando.

    Ora, cosa succede, l'articolo è si presente in db nella lingua "eng" ma NON ha il medesimo "id_articolo" del precedente (perchè è una primary key), da qui l'idea di eseguire una select con il titolo dell'articolo (non più con l'id), il quale però, se scelgo questa soluzione NON devo tradurlo (non l'avevo detto nel post precedente) praticamente il titolo mi fungerebbe da chiave primaria.
    codice:
    select * from miatabella where lang = "nuova lang" and titolo_art = "titolo"

  4. #4
    la tua primary key dovrà essere id+lang; quindi gli articoli avranno lo stesso id per diverse lingue. that easy

  5. #5
    Utente di HTML.it L'avatar di homerbit
    Registrato dal
    Dec 2005
    residenza
    Roma
    Messaggi
    1,380
    stavolta non ho capito io
    la tua primary key dovrà essere id+lang;
    un aiutino?

  6. #6
    Utente di HTML.it L'avatar di homerbit
    Registrato dal
    Dec 2005
    residenza
    Roma
    Messaggi
    1,380
    Originariamente inviato da optime
    quindi gli articoli avranno lo stesso id per diverse lingue.
    Il mio problema è proprio questo, gli articoli hanno id diverso per lingue diverse. Infatti accennavo ad un probabile errore di progettazione del db dal quale non riesco ad uscirne

    Provo a spiegare la mia difficoltà:
    da backend creo l'articolo inserendo titolo, descrizione e relativa lingua (ad es ITA).
    poi creo lo stesso articolo in ENG inserendo titolo e descrizione in eng.

    Questi DUE articoli andranno salvati nella medesima TABLE e quindi avranno idkey diverso ed ecco l'inghippo semantico.
    Avevo pensato di aggirare il problema NON traducendo il titolo, come ho spiegato nel precedente post
    Capisco che la soluzione è vicina ma...mi sfugge forse dovrei appoggiarmi su due table??

  7. #7
    l'id di cui parli è un autoincrementante?

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    119
    La risposta è nella normalizzazione dei dati.
    Quando carichi un articolo con una linqua qualsiasi devi assegnarli un solo numero id, il codice articolo invece NON credo possa essere lo stesso numero id, non puoi, nel tuo caso avere sia l'identificazione dell'articolo che l'id del prodotto.
    Per me la soluzione è (preferisco la prima)
    a) anagrafica articoli con id articolo, descrizione principale
    anagrafica lingue (id lingua, descrizione)
    anagrafica descrizione in lingua articoli (id, id Articolo, id Lingua, Descrizione)
    b) anagrafica articoli (id anagrafica, codice articolo descrizione articolo)
    in questo caso il codice articolo può NON essere univoco

  9. #9
    Utente di HTML.it L'avatar di homerbit
    Registrato dal
    Dec 2005
    residenza
    Roma
    Messaggi
    1,380
    Originariamente inviato da optime
    l'id di cui parli è un autoincrementante?
    si

  10. #10
    Utente di HTML.it L'avatar di homerbit
    Registrato dal
    Dec 2005
    residenza
    Roma
    Messaggi
    1,380
    Originariamente inviato da cyanuro
    La risposta è nella normalizzazione dei dati.
    Quando carichi un articolo con una linqua qualsiasi devi assegnarli un solo numero id, il codice articolo invece NON credo possa essere lo stesso numero id, non puoi, nel tuo caso avere sia l'identificazione dell'articolo che l'id del prodotto.
    infatti ne ho uno solo:id autoincrementale
    Per me la soluzione è (preferisco la prima)
    a) anagrafica articoli con id articolo, descrizione principale
    anagrafica lingue (id lingua, descrizione)
    anagrafica descrizione in lingua articoli (id, id Articolo, id Lingua, Descrizione)
    b) anagrafica articoli (id anagrafica, codice articolo descrizione articolo)
    in questo caso il codice articolo può NON essere univoco
    non ho capito :

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.