Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [database personali, ...possibilmente relazionali]

    Salve,

    il target di questa nuova discussione vuole essere questo: un db personale, quindi semplice, cercando però di creare almeno un paio di tabelle relazionali.

    l'utilità è riassunta in quanto dicevo nell'ultima discussione aperta, e che quì riporto:
    sto lavorando alla creazione in parallelo di tabelle (stesso nome del db e stessi nomi per le table) sia sotto PhpMyAdmin e sia sotto una mia directory personale allocata sotto htdocs. il db si chiama 'web_address'. la sua utilità: tener traccia di ciò che si apprende in un processo di autoformazione; traccia utile a chi, come me, ha già dei nipotini, e quindi non rientra più nella categoria 'giovani e freschi di mente' ; ma utile, a parer mio, anche a questi ultimi, specie se sottoposti a ritmi di vita intensi e stressanti.
    le tabelle, e relativi campi, finora create sono le seguenti:

    [list=1][*]tabella 'guide'; campi: Id, Nome, Argomento, Note; Id, Primary Key, Nome con link all'indice della Guida, Argomento per es. HTML , o PHP, o altro, e Note generico.[*]tabella 'articoli', simile al precedente, con la sola differenza del contenuto della tabella (articoli, e non guide)[*]tabella 'personali'; campi: Id, Indirizzo, Login, Utente, Nickname, Password, Note; con gli indirizzi dei siti e blog personali, dei forum frequentati, e dei siti di maggiore interesse.[/list=1]

    Lavoro con Apache 2.2+MySQL 5.0+PHP5, e con PhpMyAdmin. Browser: Internet Explorer 7. S.O. Windows XP.

    Fatte queste necessarie premesse 'di ambiente', espongo il mio primo problema.
    Per creare almeno una parvenza di db relazionale, ho pensato di creare la seguente tabella: 'categoria'; con i seguenti campi: Id, Tema, Subtema1, Subtema2, Note, con Tema Primary Key, Subtema1 e Subtema2 indicizzati.
    Id è un semplice progressivo numerico, che potrei anche omettere.
    Tema è un campo da correlare ai campi Argomenti della tabella 'guide' e della tabella 'articoli'.
    Tralasciamo di parlare dei campi Subtema1 e Subtema2 perchè forse occorrerà, se l'ipotesi per tema/Argomento è giusta, considerare la necessità di inserimento di altre due colonne nelle tabelle 'guide' e 'articoli', che potremmo chiamare Subargomento1 e Subargomento2.

    Allora, l'ipotesi di relazione è questa. A seconda dell'Argomento del record della tabella 'guide' (o 'articoli'), inserisco per es. in Argomento PHP, o HTML, o ancora Javascript.
    Parallelamente, vado a inserire nel campo Tema della table 'categoria' appunto i termini PHP, HTML, Javascript. Inserendo poi anche il campo Tema in 'guide' e 'articoli' come Foreign Key, dovrei stabilire la relazione, con la possibilità di creare delle query_sub_tables di una certa utilità per focalizzare e pianificare il proprio processo di autoapprendimento.
    Chiedo: è questa una via percorribile? oppure, ci sono impostaziopni e soluzioni migliori?
    Di proposito, ho finora inserito pochissimi reecord, per cui tutto è aperto e tutto è reimpostabile.
    QUALCUNO MI DA UNA MANO?
    GRAZIE.

    cordialmente
    Cicerone80

  2. #2

    [database personali, ...possibilmente relazionali]

    Salve piero.mac,

    non avendo ricevuto ancora nessuna risposta al mio precedente post, e avendo letto il tuo interessante post dal titolo 'Caratteristiche aggiuntive in PhpMyAdmin, ho cambiato rotta, decidendo di imparare ciò che hai pubblicato.

    Purtroppo, mi sono bloccato in un punto, e non so come andare avanti.
    Cioè, ho importato il file create_tables_mysql_4_1_2+.sql, ed ho ricevuto la risposta di PhpMyAdmin : “Importazione eseguita con successo, 10 query eseguite”, e nella sezione a sinistra è comparso l’elenco delle seguenti 8 tabelle: pma_bookmark, pma_column_info, pma_designer_coords, pma_history, pma_pdf_pages, pma_relation, pma_table_coords e pma_table_info.
    Poi tu dici:
    Noi dobbiamo avere invece una struttura di db con tabelle relazionate. Per fare questo, a disposizione di chi non avesse tabelle disponibili ma volesse provare,
    allego un file di dump di esempio. Copia e incolla salvandolo con il nome
    che_volete.sql e fatelo eseguire pari pari al precedente file.
    Questo file.sql creerà una struttura basica per le prove nel database “test”.
    Verranno configurate le tabelle "clienti", "prodotti" e "vendite".
    Secondo la mia interpretazione, ho fatto così:
    Ho salvato nella cartella scripts il tuo codice con il nome ‘dump_clienti_prodotti_vendite.sql’.
    Poi ho creato il db test(0), che per il passato inavvertitamente avevo cancellato. Quindi, ho cliccato su Importa, e sfogliando ho importato dalla cartella scripts il file dump suddetto. Purtroppo ho ricevuto questo messaggio di errore, che non so spiegarmi:
    Codice PHP:
    Errore
    query SQL


    -- 
    phpMyAdmin SQL Dump
    -- version 2.6.1
    -- [url]http://www.phpmyadmin.net[/url]
    -- 
    -- 
    Hostlocalhost
    -- Generato il18 Feb2005 at 04:35 PM
    -- Versione MySQL4.1.9
    -- Versione PHP4.3.10
    -- 
    -- 
    Esempio per pillola
    -- 
    -- 
    Database: `testcompatibile con mysql 4.0 4.1
    ------------------------------------------------------- --
    USE `
    test` ;



    Messaggio di MySQL:  

    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '---------------------------------------------------------
    use `test`' at line 1 
    Puoi darmi una mano? Vorrei proprio arrivare fino alla fine, perchè questo tuo lavoro mi farebbe capire molte cose, ed allora sono sicuro che potrò creare il mio piccolo db personale... e relazionale

    Anticipatamente, grazie.

    Cordiali saluti da Cicerone80.

  3. #3
    il doppio trattino rappresenta il comment (rem) della riga sql

    evidentemente e' saltato uno spazio. Correggi cosi':

    Codice PHP:

    -- Database: `test`    compatibile con mysql 4.0 4.1
    -- -------------------------------------------------------
    use `
    test`; 
    -- ------------------------------------------------------- 

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  4. #4

    [database personali, ...possibilmente relazionali]

    Grazie piero.mac.

    Ho apportato la correzione, e tutto si è sbloccato. Non sono arrivato fino alla fine, ma domani spero di completare.

    Di seguito le operazioni ... e relativi dubbi!
    Seleziono db test(3). Apro la tabella 'vendite'. Seleziono l'opzione Struttura.
    Al fondo delle colonne è presente la scritta 'Vedi relazioni'.
    Clicco su 'Vedi relazioni', e mi compare una videata dove è possibile notare una colonna 'Collegamenti interni', una colonna 'Mostra campo', ma non la colonna 'Commenti'
    .
    Comunque proseguo.
    Associo al campo “id_cliente” “clienti->id_cliente” ed a “id_prodotto” il valore 'prodotti->id_prodotto', e quindi clicco su Esegui.
    Mi escono 4 record, con valori nei campi id_vendita, id_cliente, id_prodotto, quantita,
    data_ordine, data_consegna.
    Clicco su 'Operazioni'. Controllo l'integrità delle referenze, e con piacere riscontro zero righe estratte (insomma, se usciva qualcosa, allora non avremmo avuto l'integrità referenziale?).

    Mi fermo quì, perchè mi rendo conto... di non rendermi conto a sufficienza delle cose che mi stanno passando sotto gli occhi.

    Comunque, ti ringrazio tanto.

    Domani proseguirò in questo piacevole susseguirsi di scoperte!
    Di nuovo grazie!

    P.S. Ho dimenticato come si fa a riprodurre una parte della videata sul post. Questo espediente renderebbe più efficace la nostra comunicazione.

    Buona notte.

    Cicerone80.

  5. #5
    Salve piero.mac

    Mi riferisco ancora alla 'pillola' da te pubblicata in questa sezione del Forum, dal titolo:
    Caratteristiche aggiuntive di PhpMyAdmin

    Sono riuscito ad arrivare fino alla conclusione (creazione del report grafico), ma con alcune lacune e dubbi.

    Prima lacuna. Come ti dicevo nel precedente post, non mi esce la colonna Commenti. Considerato che il db phpmyadmin(8) è la struttura di base del db test(3), immagino che dovrei trafficare un pò con le relazioni della table 'pma_bookmark', ma non so dove e come (forse nelle relazioni?)

    Seconda lacuna. Non ho provato a rimuovere un record della tabella 'client' o 'prodotti', per constatare la presenza di record orfani. Io so che significa cancellare, ma cosa significa rimuovere. Nel dubbio, non ho fatto nulla.

    Terza lacuna. Le join. Non le ho provate, semplicemente perchè devo rileggermi quello che lessi e dimenticai (la teoria senza la pratica non serve a nulla).

    Infine, una considerazione generale. Quella che hai pubblicato non è una pillola, ma un LAVORO OTTIMO CON GROSSI CONTENUTI. Esplorarli a fondo, a parer mio, richiede parecchio tempo. Ma assolutamente ne vale la pena.

    P.S. Per il momento, sono curioso di sapere cosa dovrei fare per fare uscire la colonna Commenti, e cosa intendi per rimuovere (togliere l'Id primario?). Se poi riesco ad approfondire i contenuti del tuo articolo, allora forse eviterò di annoiarti con queste fagianerie, come tu le chiami.

    cordialmente

    Cicerone80

  6. #6

    [database personali, ...possibilmente relazionali]

    Salve a TUTTI.

    E' mia intenzione approfondire il tema dei database, in particolare di quelli relazionali.
    Siccome è buona norma leggere prima di postare, segnalo a tutti il bel lavoro di piero.mac (cliccate sul titolo che segue),
    Caratteristiche aggiuntive di PhpMyAdmin.
    Ora, un vantaggio innegabile di un forum è la condivisione delle risorse. Propongo pertanto a tutti coloro cui interessa questo argomento di esprimere le proprie opinioni al riguardo.

    Cominciamo subito. Nella Premessa piero.mac dice:
    Avrete visto tutti la scritta in PhpMyAdmin
    che le caratteristiche aggiuntive sono state disattivate bla bla bla....
    "clicca qui e ti dico il perché"?
    Però, il link non funziona, e allora mi sono dato la seguente spiegazione.
    Il motivo per cui PhpMyAdmin ha disattivato le caratteristiche aggiuntive potrebbe essere
    quello di offire agli Utenti una implementazione scalabile del progetto, migliorandone in
    tal modo l'usabilità. In termini più semplici, abbiamo in definitiva, distinti e separati, un
    livello di base costituito dal db mysql(17) e un livello aggiuntivo costituito da
    phpmyadmin(8) per la gestione delle caratteristiche aggiuntive. Se invece fosse stato tutto
    mischiato, la gestione dell'intero pacchetto sarebbe stato più difficile per l'utente con
    scarse conoscenze di base. Invece,frazionando i pacchetti, ciascuno si prende quello che
    vuole. Se questa ipotesi fosse esatta, allora potremmo esplorare, come giustamente dice
    piero.mac, le risorse nascoste di PhpMyAdmin.
    In termini tecnici, il file create_tables_mysql_4_1_2+.sql contiene il codice per creare le 8 tabelle del db phpmyadmin(8), che rappresenta la struttura di base per la gestione delle tabelle linkate; mentre il db mysql(17) contiene le 17 tabelle (assolutamente da non toccare) che sono alla base di tutto ciò che vediamo in PhpMyAdmin, quando non sono attivate le caratteristiche aggiuntive.

    Chiedo: è giusto, oppure no questa ipotesi?

    Alla prossima.

    cordialmente

    Cicerone80.

  7. #7

    [database personali, ...possibilmente relazionali]

    Salve a TUTTI.

    Mi riferisco ancora al lavoro di piero.mac: Caratteristiche aggiuntive di PhpMyAdmin

    Ad un certo punto del paragrafo dal titolo 'Cominciamo a provare', piero.mac dice:
    Accertiamoci quindi di avere selezionato l'opzione “struttura” e verifichiamo
    la presenza al fondo delle colonne della scritta Vedi relazioni.

    Clicchiamoci su e comparirà una videata con tre colonne:

    Collegamenti interni -- Scegli il campo da mostrare --- Commenti.

    Liquidiamo subito “Commenti” che si spiega da se. I dati verranno memorizzati
    nella tabella 'pma_column_info' e verranno riportati sotto il nome della
    colonna relativa. Al passaggio del mouse sui nomi della struttura verrà
    visualizzato lo scritto impostato. Attenzione a ricordarsi di memorizzare colonna
    per colonna con <esegui> al fondo della stessa. Ogni colonna lavora per conto suo.
    Mettete qualcosa nei campi tanto per vederne l'effetto e salvatelo.
    A me la colonna Commenti non esce. Questo è il solo neo presente nella mia implementazione delle caratteristiche aggiuntive.
    Qualcuno sa dirmi qualcosa al riguardo? GRAZIE!

    Cicerone80

  8. #8

    Re: [database personali, ...possibilmente relazionali]

    Originariamente inviato da zeferino.siani
    A me la colonna Commenti non esce. Questo è il solo neo presente nella mia implementazione delle caratteristiche aggiuntive.
    Qualcuno sa dirmi qualcosa al riguardo? GRAZIE!

    Cicerone80
    il mondo si evolve e phpmyadmin pure... e figuriamoci mysql.

    Quello a cui tu ti riferisci era nelle versioni dei componenti indicati nella pillola. Ora le cose possono essere diverse e, pur rimanendo basicamente identiche le procedure e' possibile che alcuni particolari siano variati. Se ho tempo (ma non credo) provero' a verificare cosa succede con le versioni mysql e phpmyadmin correnti.

    Eventualmente segnati il commento su un blocco notes in modo provvisoriamente definitivo e nel frattempo continua le tue prove.




    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

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.