De juiste manier om een set in SQL te implementeren zou zijn met twee extra tabellen:
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)
);
(Misschien kun je de set
vermijden tabel, als u sets in slechts één tabel wilt opslaan, en die tabel heeft een unieke ID, en u zult slechts één set per record in de tabel opslaan)
Aangezien het zeer waarschijnlijk is dat u niet op zoek bent naar een goede SQL-aanpak (wat eigenlijk prima is, als je gaat nooit enige bewerking in de database uitvoeren op die sets, behalve opslag en ophalen), je zult je set waarschijnlijk gedenormaliseerd opslaan in een enkel veld op een tabel in plaats van de aanbevolen werkwijzen te volgen; in dat geval is er geen native MySQL-gegevenstype dat een Python-set kan vertegenwoordigen en moet u uw set serialiseren in een varchar
of een text
kolom. Het is geheel aan jou om een serialisatie-indeling te kiezen die aan je behoeften voldoet.