sql >> Base de Datos >  >> RDS >> Sqlserver

Cómo autoincrementar un varchar

  1. 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 con XXXnnn 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 INTEGER

    Luego configure AUTOINCREMENT en column_2

    Y sí, su clave principal puede ser (column_1, column_2) , por lo que no ha perdido ningún significado c0002 tiene para ti.

  2. 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 o Organisation 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.