Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

SQL Jak podzielić jedną kolumnę na wiele zmiennych kolumn

Podział tych danych na oddzielne kolumny to bardzo dobry początek (wartości oddzielone przecinkami są herezją). Jednak „zmienna liczba właściwości” powinna być zazwyczaj modelowana jako jeden do wiele relacji .

CREATE TABLE main_entity (
  id INT PRIMARY KEY,
  other_fields INT
);

CREATE TABLE entity_properties (
  main_entity_id INT PRIMARY KEY,
  property_value INT,
  FOREIGN KEY (main_entity_id) REFERENCES main_entity(id)
);

entity_properties.main_entity_id to klucz obcy do main_entity.id .

Gratulacje, jesteś na dobrej drodze, nazywa się to normalizacją . Niedługo osiągniesz Pierwszą postać normalną.

Pamiętaj jednak, że te właściwości powinny mieć sensownie podobny charakter (tj. wszystkie numery telefonów, adresy itp.). Nie wpadaj w ciemną stronę (czyli Antywzorzec Jednostka-Atrybut-Wartość ) i pokusić się o wrzucenie wszystkich właściwości do tej samej tabeli. Jeśli możesz zidentyfikować kilka typów atrybutów, przechowuj każdy typ w osobnej tabeli.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak skopiować rekord w tabeli SQL, ale zamienić unikalny identyfikator nowego wiersza?

  2. Przezroczyste szyfrowanie danych (TDE) w SQL Server w grupie dostępności AlwaysOn na przykładzie

  3. Zinterpretuj zakleszczenie i napraw je

  4. Dlaczego nie mogę użyć aliasu w kolumnie count(*) i odwołać się do niego w klauzuli o?

  5. Filtrowanie JOIN:GDZIE vs. ON