Cara yang tepat untuk mengimplementasikan satu set dalam SQL adalah dengan dua tabel tambahan:
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)
);
(Anda mungkin dapat menghindari set
tabel, jika Anda ingin menyimpan set hanya dalam satu tabel, dan tabel tersebut memiliki ID unik, dan Anda hanya akan menyimpan satu set per record dalam tabel)
Karena kemungkinan besar Anda tidak mencari pendekatan SQL yang tepat (yang sebenarnya baik-baik saja, jika Anda tidak akan pernah melakukan operasi dalam basis data apa pun pada set tersebut, selain penyimpanan dan pengambilan), Anda kemungkinan akan menyimpan set Anda yang didenormalisasi dalam satu bidang pada tabel alih-alih mengikuti praktik yang disarankan; dalam hal ini tidak ada tipe data MySQL asli yang dapat mewakili set Python dan Anda perlu membuat serialisasi set Anda dalam varchar
atau text
kolom. Anda bebas memilih format serialisasi yang sesuai dengan kebutuhan Anda.