Il modo corretto per implementare un set in SQL sarebbe con due tabelle extra:
CREATE TABLE set (
id int unsigned PRIMARY KEY AUTO_INCREMENT
);
CREATE TABLE set_member (
set_id int unsigned NOT NULL,
FOREIGN KEY (set_id) REFERENCES set(id),
member <whatever_type_your_set_is_of> NOT NULL,
UNIQUE (set_id, member)
);
(Potresti essere in grado di evitare il set
tabella, se desideri memorizzare i set in una sola tabella e quella tabella ha un ID univoco e memorizzerai solo un set per record nella tabella)
Dal momento che è molto probabile che tu non stia cercando un approccio SQL corretto (che va bene, se non eseguirai mai alcuna operazione nel database su quei set, oltre all'archiviazione e al recupero), probabilmente memorizzerai il tuo set denormalizzato in un singolo campo su una tabella invece di seguire le pratiche consigliate; in tal caso non esiste un tipo di dati MySQL nativo che possa rappresentare un set Python e dovrai serializzare il tuo set in un varchar
o un text
colonna. Sta a te scegliere un formato di serializzazione adatto alle tue esigenze.