Bueno, ESO es un error de diseño.
Un producto en una base de datos sólo debe aparecer una única vez. Si tienes diferentes precios y stock para un mismo producto puede darse por:
- Diferentes costos del producto.
- Diferentes sucursales o distribución geográfica.
- Diferentes medidas del mismo producto.
- Otros.
En cualquier caso, el producto sigue siendo el mismo, pero esos datos se deben almacenar en otras tablas, ya que no representan instancias del
producto sino
instancias de entidades diferentes relacionadas al producto, y en esas tablas el ID del producto pasa a ser una FK.
Si se trata de diferentes volumenes o unidades de medida del producto, de todos modos se los considera como diferentes productos, porque el volumen, forma de presentación (envase, p.e.), o unidad de medida pasan a ser un atributo discriminador, y diferenciador.
Ese es el caso, por ejemplo, de las diferentes presentaciones de un producto en un supermercado. Ese producto tendrá un ID diferente para cada presentación (si te fijas en un supermercado, los codigos de barra de las diferentes presentaciones son distintos para el mism o producto).
¿Se entiende?
Volviendo a tu pregunta inicial:
Cita: ¿Qué campo introduzco en mi bd para poder saber si es el mismo articulo pero en diferente cantidad?
Eso dependerá de la forma de identificar al producto para accesibilidad del usuario.
Normalmente, lo mejor es usar la PK, o ID propio de la tabla. Ese es el identificador por excelencia, ya que como sólo puede haber una PK por cada producto (o subproducto), el ID es más que suficiente.
Pero si sólo conoces la marca, o el nombre comercial, pero no el ID del subproducto, deberás hacer una búsqueda por similitud, para lo cual necesitarás o parte del nombre o parte de la PK. En ambos casos el usuario deberá poder acceder a un listado de
similares, con los cuales pueda elegir el correcto, luego de lo cual ya dispondrás de la PK precisa.
En esencia, el ejemplo más claro es precisamente la caja de un supermercado: Si observas, el operador puede ingresar el dato por lectura del código de barras (PK exacta), o bien ingresarlo manualmente, o de lo contrario pide que se liste por el nombre comercial. Una vez ubicado, simplemente selecciona y da <Intro> a la elegida.
La idea es que logres eso, pero para que la búsqueda se pueda hacer sin problemas es mejor que afines el diseño de tu base para evitar inconsistencias, como la que describes que tiene tu tabla.