Cuando diseñamos un sistema y tenemos una lista restringida de opciones, el modelo ER nos mostrará una relación de 'muchos a muchos'.
Consideremos el caso de Usuario - Roles:
El diagrama nos indica que debemos crear tres tablas.
Como alternativa, en MySQL nos proporciona el tipo SET.
Dicho campo acepta ninguno, uno o más valores de la lista.
mysql> insert into user(email,name,password)
values('a@greatsolutions.consulting','A','A');
Query OK, 1 row affected (0.04 sec)
mysql> insert into user(email,name,password,roles)
values('b@greatsolutions.consulting','B','B','');
Query OK, 1 row affected (0.04 sec)
mysql> insert into user(email,name,password,roles)
values('c@greatsolutions.consulting','C','C','editor,user');
Query OK, 1 row affected (0.04 sec)
Por el contrario, nos da error cuando intentamos insertar un valor diferente.
mysql> insert into user(email,name,password,roles)
values('d@greatsolutions.consulting','D','D','root');
ERROR 1265 (01000): Data truncated for column 'roles' at row 1
mysql>
Top comments (0)