sql >> Database teknologi >  >> RDS >> Sqlserver

Sådan autoinkrementeres en varchar

  1. Ideen i databasedesign er at holde hvert dataelement adskilt. Og hvert element har sin egen datatype, begrænsninger og regler. Det c0002 er ikke ét felt, men to. Det samme med XXXnnn eller hvad som helst. Det er forkert, og det vil i høj grad begrænse din mulighed for at bruge dataene og bruge databasefunktioner og -faciliteter.

    Del det op i to diskrete dataelementer:
    column_1 CHAR(1)
    column_2 INTEGER

    Indstil derefter AUTOINCREMENT på column_2

    Og ja, din primære nøgle kan være (column_1, column_2) , så du har ikke mistet betydningen c0002 har til dig.

  2. Placer aldrig leverandører og kunder (uanset hvad "c" og "s" betyder) i samme tabel. Hvis du gør det, vil du ikke have en databasetabel, du vil have en flad fil. Og forskellige problemer og begrænsninger som følge af det.

    Det betyder, Normaliser dataene. Du vil ende med:

    • én tabel for Person eller Organisation indeholdende de almindelige data (Name, Address ...)
    • én tabel for Customer indeholdende kundespecifikke data (CreditLimit ...)
    • én tabel for Supplier indeholdende leverandørspecifikke data (PaymentTerms ...)
    • ingen tvetydige eller valgfrie kolonner, derfor ingen nuller
    • ingen begrænsninger for brug eller SQL-funktioner
      .

    Og når du skal tilføje kolonner, gør du det kun, hvor det er påkrævet, uden at det påvirker alle de andre sager i den flade fil. Effektens omfang er begrænset til ændringens omfang.



  1. Sådan opretter du MySQL-visning

  2. Sådan bootstrap MySQL eller MariaDB Galera Cluster - Opdateret

  3. 7 måder Microsoft Access kan hjælpe din virksomhed på

  4. Hvordan synkroniseres SQLite-database på Android-telefon med MySQL-database på serveren?