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

SQL Cómo dividir una columna en varias columnas de variables

Dividir estos datos en columnas separadas es un muy buen comienzo (los valores separados por comas son una herejía). Sin embargo, un "número variable de propiedades" normalmente se debe modelar como one-to- muchas relaciones .

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 es una clave externa a main_entity.id .

Felicitaciones, estás en el camino correcto, esto se llama normalización . Está a punto de llegar a la primera forma normal .

Tenga en cuenta, sin embargo, que estas propiedades deben tener una naturaleza sensiblemente similar (es decir, todos los números de teléfono o direcciones, etc.). No caigas en el lado oscuro (también conocido como Entidad-Atributo-Valor antipatrón ) y caer en la tentación de incluir todas las propiedades en la misma tabla. Si puede identificar varios tipos de atributos, almacene cada tipo en una tabla separada.