-
La idea en el diseño de bases de datos es mantener cada elemento de datos separado. Y cada elemento tiene su propio tipo de datos, restricciones y reglas. Ese
c0002
no es un campo, sino dos. Lo mismo conXXXnnn
o lo que sea. Es incorrecto y limitará severamente su capacidad para usar los datos y usar las características e instalaciones de la base de datos.Divídalo en dos elementos de datos discretos:
column_1 CHAR(1)
column_2 INTEGERLuego configure AUTOINCREMENT en
column_2
Y sí, su clave principal puede ser
(column_1, column_2)
, por lo que no ha perdido ningún significadoc0002
tiene para ti. -
Nunca coloque a proveedores y clientes (lo que sea que signifique "c" y "s") en la misma tabla. Si hace eso, no tendrá una tabla de base de datos, tendrá un archivo plano. Y varios problemas y limitaciones consecuentes a eso.
Eso significa, normalizar los datos. Terminarás con:
- una tabla para
Person
oOrganisation
que contiene los datos comunes (Name, Address
...) - una tabla para
Customer
que contiene datos específicos del cliente (CreditLimit
...) - una tabla para
Supplier
que contiene datos específicos del proveedor (PaymentTerms
...) - sin columnas ambiguas u opcionales, por lo tanto, sin nulos
- sin limitaciones de uso o funciones SQL
.
Y cuando necesite agregar columnas, lo hace solo donde se requiere, sin afectar todas las demás demandas del archivo plano. El alcance del efecto se limita al alcance del cambio.
- una tabla para