Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2011
    Messaggi
    420

    [principiante] vincolo d'integrità e chiave primaria

    Ciao a tutti;
    ho due domande su un db molto semplice che sto realizzando a livello didattico;
    il db ha due tabelle, utenti e auto; la tabella utenti contiene i campi nome|password;
    il campo login è "UNIQUE" e chiave primaria;
    la tabella auto contiene nomeUtente|marca; entrambi i campi sono UNIQUE;
    la prima domanda è, utenti.nome e auto.nomeUtente contengono gli stessi valori, ossia il nome del proprietario dell'auto. E' corretto che ci sia un vincolo d'integrità referenziale tra questi due campi?
    La seconda domanda, riguardo la tabella auto, è indifferente quale dei due campi indico come chiave primaria, o considerando il vincolo con la tabella utenti è più corretto che lo sia il campo nomeUtente?

  2. #2
    nella tabella auto non avrai chiavi primarie, ma solo campi con indice. altrimenti non potrai inserire utenti con due auto della stessa marca

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2011
    Messaggi
    420
    Ciao e grazie per la risposta prima di tutto...
    Sto cercando di fissare un po' i concetti...
    Quindi con "chiave primaria" io indico che quel campo è unico per tabella, giusto?
    Poichè Mysql mi permette di scegliere come attributi tra gli altri, chiave primaria o "unique" cosa indico se scelgo unique?
    Nel caso dell'esempio precedente, se quindi volessi poter abbinare ad ogni utente un'unica auto, il campo nomeutente della tabella auto è corretto che sia chiave primaria? In questo caso è anche corretto inserire un vincolo d'integrità referenziale tra i campi utente.nome e auto.nomeutente ? Quali sono i pro e i contro che ottengo impostandolo?

  4. #4
    Originariamente inviato da sitodue
    Ciao e grazie per la risposta prima di tutto...
    Sto cercando di fissare un po' i concetti...
    Quindi con "chiave primaria" io indico che quel campo è unico per tabella, giusto?
    indichi che quel campo contiene valori univoci che identificano la tupla.

    Poichè Mysql mi permette di scegliere come attributi tra gli altri, chiave primaria o "unique" cosa indico se scelgo unique?
    Il vincolo UNIQUE garantisce che tutti i valori presenti in una colonna siano diversi.

    Nel caso dell'esempio precedente, se quindi volessi poter abbinare ad ogni utente un'unica auto, il campo nomeutente della tabella auto è corretto che sia chiave primaria?
    Non e' proprio il modo migliore ma comunque si avresti che uno stesso nome utente puo' apparire una sola volta e quindi con una macchina.

    In questo caso è anche corretto inserire un vincolo d'integrità referenziale tra i campi utente.nome e auto.nomeutente ? Quali sono i pro e i contro che ottengo impostandolo?
    si. I pro sono che sono relazionate e puoi impostare che le modifiche su una delle 2 si proiettano automaticamente anche sull'altra. E ovviamente anche altri 'pro'
    Non si può risolvere un problema usando lo stesso modo di pensare che ha creato quel problema.
    Albert Einstein

    Siate Affamati, siate Folli, siate Onesti e siate Generosi

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2011
    Messaggi
    420
    Originariamente inviato da bomberdini
    indichi che quel campo contiene valori univoci che identificano la tupla.

    Il vincolo UNIQUE garantisce che tutti i valori presenti in una colonna siano diversi.
    ok,è tutto più chiaro tranne questo passaggio...
    se tutti i campi di una colonna sono unici grazie all'attributo UNIQUE, anche questo campo allora mi identificherà univocamente una tupla... continuo a non cogliere la differenza con primary key

  6. #6
    La differenza sostanziale e' che UNIQUE supporta anche valori NULL

    Mentre un valore della chiave primaria non puo essere NULL
    Non si può risolvere un problema usando lo stesso modo di pensare che ha creato quel problema.
    Albert Einstein

    Siate Affamati, siate Folli, siate Onesti e siate Generosi

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2011
    Messaggi
    420
    chiaro!
    Grazie 1000

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.