Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

SQL Как да разделите една колона на множество променливи колони

Разделянето на тези данни в отделни колони е много добро начало (разделените със запетая стойности са ерес). Въпреки това, „променлив брой свойства“ обикновено трябва да се моделира като едно към- много отношения .

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 е чужд ключ към main_entity.id .

Поздравления, на прав път сте, това се нарича нормализиране . На път сте да стигнете до Първата нормална форма.

Имайте предвид обаче, че тези свойства трябва да имат разумно сходен характер (т.е. всички телефонни номера или адреси и т.н.). Не попадайте в тъмната страна (известна още като Анти-шаблон на обект-атрибут-стойност ), и се изкушавайте да хвърлите всички свойства в една и съща таблица. Ако можете да идентифицирате няколко типа атрибути, съхранявайте всеки тип в отделна таблица.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Защо доставчикът на данни или друга услуга ми връща статус E_FAIL? SQL Native Client

  2. SSRS Report Manager задава ниво на мащабиране по подразбиране

  3. SQL Server добавя първичен ключ за автоматично увеличение към съществуващата таблица

  4. OpenRowSet и OpenDataSet без права на sysadmin

  5. Функция SQL group_concat в SQL Server