Właściwym sposobem na zaimplementowanie zestawu w SQL byłyby dwie dodatkowe tabele:
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)
);
(Możesz być w stanie uniknąć set
tabeli, jeśli chcesz przechowywać zestawy tylko w jednej tabeli, a ta tabela ma unikalny identyfikator i będziesz przechowywać tylko jeden zestaw na rekord w tabeli)
Ponieważ jest bardzo prawdopodobne, że nie szukasz odpowiedniego podejścia do SQL (co właściwie jest w porządku, jeśli nigdy nie będziesz wykonywać żadnych operacji w bazie danych na tych zestawach, poza przechowywaniem i pobieraniem), prawdopodobnie będziesz przechowywać swój zestaw zdenormalizowany w jednym polu w tabeli, zamiast postępować zgodnie z zalecanymi praktykami; w takim przypadku nie ma natywnego typu danych MySQL, który może reprezentować zestaw Pythona i będziesz musiał zserializować swój zestaw w varchar
lub text
kolumna. Wybór formatu serializacji, który odpowiada Twoim potrzebom, zależy wyłącznie od Ciebie.