Mon enseignement a dit que je devrais combiner deux clés étrangères en une seule clé primaire. Mais mon processus de pensée est que cela ne permettrait qu'une seule combinaison de chaque clé étrangère. Imaginez que je possède un produit, un achat, un PurchaseDetail.Quand dois-je combiner deux clés étrangères en tant que clé étrangère unique?
Dans PurchaseDetail, j'ai deux clés étrangères, une pour le produit et une pour l'achat. Mon professeur a dit que je devrais combiner ces deux clés étrangères en une seule. Mais un produit ne peut-il pas faire l'objet de nombreux achats différents? Et de nombreux achats ont de nombreux produits?
Je suis confus.
Merci! Edit: C'est le SQL que mon professeur a vu et a ensuite donné son avis. Merci pour les conseils les gars. (J'ai changé l'essentiel en anglais)
create table Purchase
(
ID int primary key identity(1,1),
IDCliente int foreign key references Cliente(ID),
IDEmpleado int foreign key references Empleado(ID),
Fecha datetime not null,
Hora datetime not null,
Amount float not null,
)
create table PurchaseDetail
(
ID int primary key identity(1,1),
IDPurchase int foreign key references Purchase(ID),
IDProductOffering int foreign key references ProductOffering(ID),
Quantity int not null
)
create table Product
(
ID int primary key identity(1,1),
IDProveedor int foreign key references Proveedor(ID),
Nombre nvarchar(256) not null,
IDSubcategoria int foreign key references Subcategoria(ID),
IDMarca int foreign key references Marca(ID),
Fotografia nvarchar(1024) not null
)
create table ProductOffering
(
ID int primary key identity(1,1),
IDProduct int foreign key references Product(ID),
Price float not null,
OfferDate datetime not null,
)
Peut-être que je suis confus au sujet de la bonne conception de schéma de base de données. Merci encore!
Pourquoi voudriez-vous faire cela dans le scénario que vous avez mentionné? Un exemple ou une raison? –
Soit vous avez mal compris votre professeur, ou il est incorrect. –
Oui je suis d'accord avec Mitch –