sql >> Databáze >  >> RDS >> Sqlserver

Jak autoinkrementovat varchar

  1. Myšlenkou návrhu databáze je ponechat každý datový prvek oddělený. A každý prvek má svůj vlastní datový typ, omezení a pravidla. To c0002 není jedno pole, ale dvě. Totéž s XXXnnn nebo cokoli jiného. Je to nesprávné a vážně to omezí vaši schopnost používat data a používat databázové funkce a zařízení.

    Rozdělte jej na dvě samostatné datové položky:
    column_1 CHAR(1)
    column_2 INTEGER

    Poté nastavte AUTOINCREMENT na column_2

    A ano, váš primární klíč může být (column_1, column_2) , takže jste neztratili žádný význam c0002 má pro vás.

  2. Nikdy neumisťujte dodavatele a zákazníky (bez ohledu na to, co znamená „c“ a „s“) do stejné tabulky. Pokud to uděláte, nebudete mít databázovou tabulku, budete mít plochý soubor. A z toho plynoucí různé problémy a omezení.

    To znamená, normalizovat data. Skončíte s:

    • jedna tabulka pro Person nebo Organisation obsahující společná data (Name, Address ...)
    • jedna tabulka pro Customer obsahující údaje specifické pro zákazníka (CreditLimit ...)
    • jeden stůl pro Supplier obsahující údaje specifické pro dodavatele (PaymentTerms ...)
    • žádné nejednoznačné nebo volitelné sloupce, tudíž žádné hodnoty Null
    • žádná omezení použití nebo funkcí SQL
      .

    A když potřebujete přidat sloupce, uděláte to pouze tam, kde je to požadováno, aniž by to ovlivnilo všechny ostatní problémy plochého souboru. Rozsah účinku je omezen na rozsah změn.



  1. Jak přidat offset ve výběrovém dotazu v Oracle 11g?

  2. Jak používáte proměnné v jednoduchém skriptu PostgreSQL?

  3. Tipy pro lepší návrh databáze

  4. Dochází k zásahu do výkonu pomocí desítkových datových typů (MySQL / Postgres)