28 messaggi dal 29 dicembre 2004
Salve,
devo passare dal diagramma UML delle classi alla implementazione dello schema relazionale.
Mi sono bloccato sul concetto di "specializzazione".
Ecco in figura la mia situazione:

http://img15.imageshack.us/img15/3897/diagrammadiclasse1.gif

Sono sicuro che devono essere create tre tabelle:

prodotto(cod_p, nome_prodotto, marca, scadenza)

prodotto_supermercato(?)

prodotto_fornitore(?)

come devo creare l'associazione tra le sottoclassi e la superclasse?
Modificato da Liux il 14 maggio 2009 18.17 -
1.976 messaggi dal 27 luglio 2005
Contributi
salve,
Liux wrote:
Salve,
devo passare dal diagramma UML delle classi alla implementazione dello schema relazionale.
Mi sono bloccato sul concetto di "specializzazione".
Ecco in figura la mia situazione:

http://img15.imageshack.us/img15/3897/diagrammadiclasse1.gif
Sono sicuro che devono essere create tre tabelle:

prodotto(cod_p, nome_prodotto, marca, scadenza)

prodotto_supermercato(?)

prodotto_fornitore(?)

se prodotto_supermercato e' in relazione 1-1 con prodotto, ti basta come cod_p sia come pk che fk, diversamente devi aggiuntere a
prodotto_supermercato una surrogate key
lo stesso anche per prodotto_fornitore..
saluti

Andrea Montanari
http://www.hotelsole.com - http://www.hotelsole.com/asql/index.php
28 messaggi dal 29 dicembre 2004
A, quindi una primary key può anche essere foreign key?
Questo non lo sapevo...
28 messaggi dal 29 dicembre 2004
Si ma alla fine in prodotto_supermercato e prodotto_fornitore devo creare un attirbuto che è sia chiave primaria che chiave esterna (che punta al codice del "prodotto" associato?)
1.976 messaggi dal 27 luglio 2005
Contributi
salve,
Liux wrote:
Si ma alla fine in prodotto_supermercato e prodotto_fornitore devo creare un attirbuto che è sia chiave primaria che chiave esterna (che punta al codice del "prodotto" associato?)

si.. tendenzialmente
SET NOCOUNT ON;
USE tempdb;
GO
CREATE TABLE dbo.Prodotti (
Id int NOT NULL PRIMARY KEY,
Data varchar(10)
);
CREATE TABLE dbo.Prodotti_Supermercato (
Id int NOT NULL PRIMARY KEY
CONSTRAINT fk_Prodotti_SuerMercato$is$Prodotti
FOREIGN KEY REFERENCES dbo.Prodotti (Id),
Data varchar(10)
);
GO
DROP TABLE dbo.Prodotti_Supermercato, dbo.Prodotti;

ovvio che dipende, ripeto, dal fatto se la relazione sia 1:1 o 1:n.. in caso di 1:n la chiave primaria delle tabelle referenzianti non puo' essere cosi' "semplice"..
saluti

Andrea Montanari
http://www.hotelsole.com - http://www.hotelsole.com/asql/index.php

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.