sql >> Databáze >  >> RDS >> Mysql

Existuje ekvivalent MySQL k typu sady Pythonu?

Správným způsobem implementace sady v SQL by byly dvě další tabulky:

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žná se budete moci vyhnout set tabulky, pokud chcete ukládat sady pouze do jedné tabulky a tato tabulka má jedinečné ID a do tabulky uložíte pouze jednu sadu na záznam)

Protože je velmi pravděpodobné, že nehledáte správný přístup SQL (což je ve skutečnosti v pořádku, pokud nikdy nebudete s těmito sadami provádět žádnou operaci v databázi, kromě ukládání a vyhledávání), pravděpodobně uložíte svou sadu denormalizovanou do jediného pole v tabulce namísto dodržování doporučených postupů; v takovém případě neexistuje žádný nativní datový typ MySQL, který by mohl reprezentovat sadu Python, a budete muset svou sadu serializovat do varchar nebo text sloupec. Je zcela na vás, abyste si vybrali formát serializace, který vyhovuje vašim potřebám.



  1. Odstraňte klauzuli limitu z MySQL Workbench

  2. Spustit uloženou proceduru v SQL Developer?

  3. fatální chyba 'stdio.h' Python 2.7.3 na Mac OS X 10.7.5

  4. Problém s kódováním utf-8 pomocí PHP + MySQL