Vamos por partes
Pregunta:
-En cuanto a los Clientes y Proveedores, quisiera saber que es mas usual o mas conveniente o mas operativo y que pros y contras tendria, crear una tabla de "Clientes" y otra de "Proveedores", o por el contrario unificarlos en una única tabla donde un campo nos defina el tipo de registro que es (cliente o proveedor)
Respuesta:
-En este caso, la tendencia general es unificar clientes y proveedores en una misma tabla, "entidades" (por ejemplo), con un par de campos booleanos para activar si es cliente, si es proveedor o si es ambos a la vez. En este último caso, si los separas en tablas diferentes vas a tener la información de una misma entidad duplicada, por un lado en la tabla clientes y por otro en la de proveedores.
La información ducplicada suele provocar problemas a la hora de actualizarla, al cambiar campos que haya en ambas tablas, como los números de teléfono, y es posible que el usuario acabe actualizando uno (la ficha del cliente) y otro no (la ficha de proveedor) y al final no se sepa qué dato es el bueno, qué teléfono es el bueno.
Y te voy a poner un ejemplo práctico para que lo veas más claro: Imagina que implantas la aplicación en una empresa de distribución que tiene como cliente a una imprenta. Si esta imprenta a la vez hace trabajos de papelería para la empresa de distribución ambos serán entre sí cliente y proveedor a la vez, y este tipo de caso es bastante común (comprar al que te compra).
Pregunta:
-Lo mismo, en cuanto a los albaranes de compra o venta, crear 2 tablas o unificarlos en una. Seria mejor unificarlos en una única tabla, para que entreenlazar datos de compras y ventas fuese mas sencillos?
Respuesta:
En este caso es mejor dos tablas separadas. Aquí no hay duplicidad de información, pues un mismo albarán o es de compra o es de venta. Nunca será ambos a la vez.
Aunque el hecho de unificarlos en una sola tabla pueda parecer inicialmente simplificar el esquema general de la aplicación (menos tablas), complica más el hecho de tener que condicionar en todo momento el comportamiento de la aplicación para diferenciar entre compras y ventas.
Pregunta:
-Por último se me ocurre que todos los documentos existentes (Pedidos de compra y venta, Albaranes de compra y venta, Movimientos manuales de almacen), podria estar en una única tabla, que en realizadad aglutine todos los movimientos realizados en el almacen por las diferentes vias.
Respuesta:
Lo más común es diferenciar en tablas diferentes los procesos de compra y venta (oferta-> pedido-> albarán-> factura). En el caso de la tabla de movimientos es mejor que sea única diferenciando en un campo el tipo de movimiento, es más fácil tanto para programar el control de existencias como para consultar luego la información (imagina consultar los movimientos de tu cuenta bancaria, por un lado las entradas y por otro las salidas). Las líneas de albarán de proveedor generan movimientos de tipo entrada y las líneas de albarán de cliente generan movimientos de salida. Además esto con Velázquez Visual es muy fácil y creo que hay algún tutorial al respecto (échales un vistazo).