Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    Relazione tra più tabelle... come risolvo ?

    Ciao a tutti.
    Dovrei poter avere una lista delle informazioni degli abbonamenti attivi riguardo un determinato utente.
    L'utente accede alla sua area e gli viene/vengono visualizzati i risultato dei suoi abbonamenti nella homepage.
    Detto ciò io ho le seguenti 2 tabelle :

    1- lista_abbonamenti

    id_abb
    tipologia_abb
    nome_abb
    descrizione
    2- user_abb

    id_ua
    user_id
    idabb

    Queste due tabelle mi dicono a quali abbonamenti è relazionato un utente...
    ovviamente ogni abbonamento ha una tabella a se... esempio :

    abbonamento numero 1 : ha la seguente tabella :
    abbonamento_1 con i seguenti id:
    id_opt
    data
    frase

    abbonamento numero 2 :
    abbonamento_2
    id_xyz
    data
    frase

    come posso far visualizzare le frasi in base alla data odierna degli abbonamenti ai quali è segnato l'utente ?


    Grazie a tutti


    P.S. ho aggiunto un id alla tabella abbonamento_1 ed abbonamento_2 riferito all'id_abb della tabella lista_abbonamenti.
    Ultima modifica di simsar78; 10-08-2016 a 12:02

  2. #2
    Ho risolto nel seguente modo:

    SELECT * FROM (
    SELECT id_lista_abb AS lista_2, DATA AS data_day,frase, autore FROM abbonamento_1
    UNION
    SELECT id_lista_abb AS lista_1,DATA AS data_pp,frase AS frase_pp, autore AS autore_pp FROM abbonamento_2
    ) AS temp INNER JOIN user_abb ON user_abb.idabb=temp.lista_day INNER JOIN lista_abb ON lista_abb.id_abb=temp.lista_day WHERE data_day='2016-08-10 00:0'

  3. #3
    ogni abbonamento ha una sua tabella? 1.000 abbonamenti = 1.000 tabelle?

  4. #4
    Ogni abbonamento ha una tabella a se. anche perchè ha almeno 300 record ognuno.

  5. #5
    Moderatore di Windows e software L'avatar di URANIO
    Registrato dal
    Dec 1999
    residenza
    Casalpusterlengo (LO)
    Messaggi
    1,290
    Quote Originariamente inviata da simsar78 Visualizza il messaggio
    Ogni abbonamento ha una tabella a se. anche perchè ha almeno 300 record ognuno.
    Non conosco il progetto ma "a naso" una struttura del genere è sbagliata e in futuro ti darà moooolti problemi.

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Quote Originariamente inviata da URANIO Visualizza il messaggio
    Non conosco il progetto ma "a naso" una struttura del genere è sbagliata e in futuro ti darà moooolti problemi.
    Concordo, sicuramente il database è progettato male.

    Per esempio vedo che la struttura della tabella abbonamento è
    abbonamento numero 1 : ha la seguente tabella :
    abbonamento_1 con i seguenti id:
    id_opt
    data
    frase
    In pratica cosa vuoi fare? Cos'è quella frase che salvi nella tabella? Un commento? Una comunicazione?

    Avere una tabella unica per tutti gli abbonamenti, anche se ogni abbonamento ha più di 300 record, è sempre meglio che una tabella per ogni abbonamento.

    Ora non so cosa vuoi fare di preciso, ma se si trattasse di qualcosa di più complesso per esempio potresti prevedere una tabella unica per gli abbonamenti e una per le "frasi" per poi metterle in relazione, così nella tabella "abbonamenti", ogni abbonamento ha un solo record e le "frasi" ad esso associate te le vai a prendere dalla tabella "frasi". 2 tabelle ed hai tutto.

  7. #7
    mi serve per comunicare giornalmente una frase differente agli utenti a seconda degli abbonamenti che hanno scelto.. ovvio che poi gli arriva anche una email giornaliera... come newsletter. una email per ogni abbonamento

  8. #8
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    I campi delle tabelle abbonamenti che hai ora sono solo quei 3 che hai indicato? Quindi id_xyz, data e frase? Oppure ci sono anche altri campi?

  9. #9
    tabella abbonamento composta da :
    id_1 (per abbonamento 1... se ho abbonamento 2 avrò id_2)
    id_lista_abb (prende l'id dalla tabella che elenca gli abbonamenti disponibili)
    giorno (giorno-mese-anno)
    frase
    autore

  10. #10
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Io strutturerei il db così allora:

    Tabella utenti:
    - id_utente
    - id_abbonamento (per recuperare il tipo di abbonamento sottoscritto dall'utente)
    ... altri campi per i dati personali tipo email, username ecc...

    Tabella abbonamenti:
    - id_abbonamento
    - tipologia_abbonamento
    - nome_abbonamento
    - descrizione

    Tabella comunicazioni:
    - id_comunicazione
    - id_utente (per sapere a quale utente sia indirizzata e recuperare i suoi dati, tipo l'email)
    - id_abbonamento (per sapere a che tipo di abbonamento è relativo, ma in realtà non serve, è lo stesso sottoscritto dall'utente a cui la comunicazione è indirizzata)
    - giorno
    - frase
    - autore (che potrebbe essere solo l'id di chi lo scrive)
    Ultima modifica di Alhazred; 11-08-2016 a 12:02

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.