A maneira correta de implementar um conjunto em SQL seria com duas tabelas extras:
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)
);
(Você pode evitar o
set
table, se você quiser armazenar conjuntos em apenas uma tabela, e essa tabela tiver um ID exclusivo, e você armazenará apenas um conjunto por registro na tabela) Como é muito provável que você não esteja procurando por uma abordagem SQL adequada (o que é realmente bom, se você nunca executará nenhuma operação no banco de dados nesses conjuntos, além de armazenamento e recuperação), provavelmente armazenará seu conjunto desnormalizado em um único campo em uma tabela em vez de seguir as práticas recomendadas; nesse caso, não há nenhum tipo de dados nativo do MySQL que possa representar um conjunto Python e você precisará serializar seu conjunto em um
varchar
ou um text
coluna. Cabe a você escolher um formato de serialização que atenda às suas necessidades.