sql >> Databasteknik >  >> RDS >> Mysql

Finns det en MySQL som motsvarar Pythons uppsättningstyp?

Det korrekta sättet att implementera en uppsättning i SQL skulle vara med två extra tabeller:

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)
);

(Du kanske kan undvika set tabell, om du bara vill lagra uppsättningar i en tabell och den tabellen har ett unikt ID, och du kommer bara att lagra en uppsättning per post i tabellen)

Eftersom det är mycket troligt att du inte letar efter en korrekt SQL-metod (vilket faktiskt är bra, om du kommer aldrig att utföra någon databasoperation på dessa uppsättningar, förutom lagring och hämtning), kommer du sannolikt att lagra din uppsättning denormaliserad i ett enda fält på en tabell istället för att följa rekommenderade metoder; i så fall finns det ingen inbyggd MySQL-datatyp som kan representera en Python-uppsättning och du måste serialisera din uppsättning i en varchar eller en text kolumn. Det är helt upp till dig att välja ett serialiseringsformat som passar dina behov.



  1. ORDER BY-objekt måste visas i urvalslistan om satsen innehåller en UNION-, INTERSECT- eller EXCEPT-operator (SQL-server)

  2. Hur man skapar en tabell i MySQL Workbench med hjälp av GUI

  3. Hur man installerar MySQL 5.7 på Amazon ec2

  4. Installera Oracle SQL Developer 19.1 på Mac OS med JDK 8