Código (sql) [Seleccionar]
create table categoria
(
codcat int primary key,
categoria varchar(30)
)
go
Create table producto
(
codpro int primary key,
codcat int foreign key references categoria(codcat),
nombre varchar(30)
)
go
insert into categoria values (1,'Lacteos')
insert into categoria values (2,'Bebidas')
insert into categoria values (3,'Comestibles')
insert into producto values (1,1,'Gloria')
insert into producto values (2,2,'Pepsi')
insert into producto values (3,2,'Coca Cola')
insert into producto values (4,3,'Arroz')
insert into producto values (5,3,'Azucar')
codcat int foreign key references categoria(codcat) (Constraint)
En la tabla producto a la hora de ingresar uno nuevo necesitas especificar un codigo que exista en la tabla categoria, de esa forma podras decir que dicho producto pertenece a dicha categoria.
Código (sql) [Seleccionar]
insert into producto values (4,3,'Arroz')
El producto Arroz cuyo codigo es 4, pertenece a la categoria cuyo codigo sea 3 (en este caso comestibles).
¿Es necesario que al crear mis tablas defina los Constraint?
No es una obligacion, si no las defines y efectuas consultas ya sean insert, update, delete no te mostrara ningun error.
¿Es recomendable usar Constraint?
El hecho que no sea obligatorio usarlas no significa que no se deban usar, es mas, es muy recomendable usarlas (casi una regla cuando trabajaras con una BD bien formada).
Te recomienda des una lectura sobre el tema.
Enlace 1
Saludos