Hola por supuesto que sirven, tambien las puedes omitir pero como bien te ha dicho
frezeer las bases de datos
relacionales son de gran ayuda para mantener la integridad de la informacion.
Para diseñar una base de datos,
requieres saber bien que informacion ira en ella (
mas que evidente)
existen unas 'reglas'(formas normales) para diseñar 'correctamente' una base de datos, esto conocido como normalizar
que imagino que las debes conocer
a nosotros nos han enseñado bases de datos relacionales
Al seguir estas reglas pues vas normalizando tu base de datos y creando relaciones entre las tablas, hay un conocido
lema
"Algoritmo divide y vencerás" que se aplica mucho en estos casos de normalizar...(aunque si se te pasa la mano
pues recuerda hay que desnormalizar) esto como breve repaso
Bueno mira conozco algunas personas que iniciaron en las bases de datos en MsAccess y estaban acostumbrados a ver las relaciones
de una manera grafica y cuando entraron a mysql encuentran con que no existe esa manera de relacionar las tablas (manera grafica
)
y su mundo se desmorono
..tal vez sea el caso de que 'no ves por donde' estan las relaciones
entonces ocurre lo siguiente:
tenemos 3 tablas
Productos , Ventas , Detalle_ventas
[dohtml]
<table border=1 cellspacing=0 cellpading=0><tr><td>
Productos<br>
----------<br>
*Codigo<br>
Descripcion<br>
Precio<br>
Existencia<br>
</td><td>
Ventas<br>
--------<br>
*Folio<br>
Fecha_Hora<br>
Tipo_Venta<br>
Cajero<br>
Tipo_Pago<br>
Num_cliente<br>
</td><td>
Detalle_Ventas<br>
--------------<br>
Folio_Venta<br>
Codigo_Producto<br>
Cantidad<br>
</td></tr></table>
[/dohtml]
Ahi es una base de datos relacional aunque no se vean las relaciones (graficamente), en php puedes llamar una consulta
ya relacionada asi:
...
$sql="SELECT p.dodigo,p.descripcion,dv.cantidad,p.precio v.cajero FROM productos p,ventas v,detalle_ventas dv WHERE dv.codigo_producto=p.codigo and v.folio=dv.folio_venta";
...
Con eso ya creas la 'relacion'... en MySQL puedes
declarar las llaves foraneas (
Foreign Keys)
y que el DBMS te maneje la integridad referencial, puedes no hacerlo(y no significa que no este relacionada),pero requiera mas programacion
Tambien puedes relacionar con JOIN
Saludos, suerte y a leer....