[MySQL] Implementazione tabelle??
-
luciano9429
- Prode Principiante
- Messaggi: 107
- Iscrizione: martedì 24 dicembre 2013, 11:40
- Distribuzione: ubuntu 12.04 lts 64 bit
[MySQL] Implementazione tabelle??
Ho fatto un progetto ed nello schema e/r ho degli attributi che fanno riferimento all'associazione e non all'entità. Nel fare l'implementazione con create table dove devo inserire gli attributi dell' associazione (forse nella tabella a cui si riferiscono)?
Poi ho un' entità identificabile con due primary key come faccio a dichiararle in sql? Mi da errore se metto due primary key.
Poi ho un' entità identificabile con due primary key come faccio a dichiararle in sql? Mi da errore se metto due primary key.
Re: [MySQL] Implementazione tabelle??
Gli attributi della relazione vanno nella JOIN TABLE per le relazioni N-M, negli altri casi vanno nel lato 1 della 1-N, i casi 1-1 non esistono perché quando vai a portare tutto in terza forma normale le relazioni 1-1 spariscono.
Ad esempio se hai una tabella PERSONE e una tabella ABITAZIONI e nella relazione 1-N ABITA vuoi mettere la data da cui parte la relazione questa va ovviamente nella tabella PERSONE, una persona può iniziare ad abitare una abitazione una sola volta mentre una abitazione, potendo ospitare piu' persone, ha diversi valori per l'attributi data della relazione ABITA.
Ad esempio se hai una tabella PERSONE e una tabella ABITAZIONI e nella relazione 1-N ABITA vuoi mettere la data da cui parte la relazione questa va ovviamente nella tabella PERSONE, una persona può iniziare ad abitare una abitazione una sola volta mentre una abitazione, potendo ospitare piu' persone, ha diversi valori per l'attributi data della relazione ABITA.
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
-
luciano9429
- Prode Principiante
- Messaggi: 107
- Iscrizione: martedì 24 dicembre 2013, 11:40
- Distribuzione: ubuntu 12.04 lts 64 bit
Re: [MySQL] Implementazione tabelle??
Per le relazioni 0,N?Zoff [url=http://forum.ubuntu-it.org/viewtopic.php?p=4591213#p4591213][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:Gli attributi della relazione vanno nella JOIN TABLE per le relazioni N-M, negli altri casi vanno nel lato 1 della 1-N, i casi 1-1 non esistono perché quando vai a portare tutto in terza forma normale le relazioni 1-1 spariscono.
Ad esempio se hai una tabella PERSONE e una tabella ABITAZIONI e nella relazione 1-N ABITA vuoi mettere la data da cui parte la relazione questa va ovviamente nella tabella PERSONE, una persona può iniziare ad abitare una abitazione una sola volta mentre una abitazione, potendo ospitare piu' persone, ha diversi valori per l'attributi data della relazione ABITA.
E per quanto riguarda il discorso delle primary key, posso usare unique giusto?
Re: [MySQL] Implementazione tabelle??
Le relazioni 0,N non esistono. Sono relazioni 1-N facoltative, quindi vanno trattate come 1-N.
Le primary key vanno definite come primary non come unique.
Per creare una tabella con piu' primary key basta mettere i nomi separati da virgola nel costrutto PRIMARY della query:
Le primary key vanno definite come primary non come unique.
Per creare una tabella con piu' primary key basta mettere i nomi separati da virgola nel costrutto PRIMARY della query:
Codice: Seleziona tutto
CREATE TABLE nome_tabella (
prima_chiave int(11) NOT NULL,
seconda_chiave int(11) NOT NULL,
PRIMARY KEY (prima_chiave, seconda_chiave)
)Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
-
luciano9429
- Prode Principiante
- Messaggi: 107
- Iscrizione: martedì 24 dicembre 2013, 11:40
- Distribuzione: ubuntu 12.04 lts 64 bit
Re: [MySQL] Implementazione tabelle??
A ok grazie delle delucidazioni. Non sapevo si potesse dichiarare cosi due chiavi primarie.Zoff [url=http://forum.ubuntu-it.org/viewtopic.php?p=4591949#p4591949][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:Le relazioni 0,N non esistono. Sono relazioni 1-N facoltative, quindi vanno trattate come 1-N.
Le primary key vanno definite come primary non come unique.
Per creare una tabella con piu' primary key basta mettere i nomi separati da virgola nel costrutto PRIMARY della query:Codice: Seleziona tutto
CREATE TABLE nome_tabella ( prima_chiave int(11) NOT NULL, seconda_chiave int(11) NOT NULL, PRIMARY KEY (prima_chiave, seconda_chiave) )
Chi c’è in linea
Visualizzano questa sezione: 0 utenti iscritti e 2 ospiti
