Te estoy leyendo al vuelo y me llamo la atencion este comentario:
... la idea que tenia era hacer todo en una sola tabla incluso recomende meterle el campo CONSIGNACION en lugar de crear otra tabla...
Si partimos de esa premisa terminaríamos diseñado algo que no se basa en el requerimiento. No debes partir deseando querer hacer todo en una sola tabla, lo mismo no debes partir deseando querer a ser todo en 10 o 100 tablas. Tienes que crear las tablas que sean necesarias, si el diseño te arroja crear 3 tablas HAZLO, si te arroja hacerlo en uno o cien pues esas seran.
Ahora, yendo al punto especifico, el costo como bien dijo Miguel va en la tabla de maestro de producto. Otra cosa es que conserve la "evolucion" de ese costo para poder hacer reversiones en otra tabla, pero el costo en si va en un campo de la tabla maestro de productos, al menos es lo que yo también opino.
Igual cuando calculo el costo leo el stock actual, leo el costo actual, leo lo que se esta ingresando y leo su valor de ingreso (o precio de compra, la venta no altera el costo), inserto y actualizo en una tabla de histórico de costo y el valor obtenido lo meto en el maestro.
Si quiero sustentar dicho costo acudo a la tabla de histórico, lo armo, lo presento en un grid y hasta lo gráfico.

El tema de consignación no manejo, pero si lo hiciera no crearía un campo en el maestro, a ojo de buen cubero considero que ese tipo de transacción la trataría de forma "similar" a una venta, similar pero no igual, o sea, crearia un par de tabla (cabecera y detalle) o usaría la tabla de ventas pero aumentaría un campo mas para indicar al sistema que esa es una consignación y no una venta y darle una evaluación particular. Es lo que creo haría con cargo a rectificar algo porque últimamente estoy en otros horizontes alejados de la programación en general.
igual en lo que pueda ayudarte. Saludos