SQLでセットを実装する適切な方法は、2つの追加テーブルを使用することです。
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)
);
(set
を回避できる場合があります テーブル、セットを1つのテーブルにのみ保存する場合、そのテーブルには一意のIDがあり、レコードごとに1つのセットのみをテーブルに保存します)
適切なSQLアプローチを探していない可能性が非常に高いため(実際には問題ありませんが、 保存と取得以外に、これらのセットに対してデータベース内操作を実行することは決してありません)、推奨される方法に従う代わりに、非正規化されたセットをテーブルの1つのフィールドに保存する可能性があります。その場合、Pythonセットを表すことができるネイティブMySQLデータ型はなく、セットをvarchar
でシリアル化する必要があります。 またはtext
桁。ニーズに合ったシリアル化形式を選択するのは完全にあなた次第です。