Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie kann ich Multiple-Choice-Werte in einer SQL-Tabelle speichern? Wie soll der Tisch sein?

Sie sollten drei Tabellen implementieren:

    CREATE TABLE customer (
    customer_id int - Autoincrement,
    customer_name varchar(100)
    )

    CREATE TABLE icecream (
    icecream_id int - Autoincrement,
    flavor varchar(100)
    )

    CREATE TABLE cust_flavors (
    customer_id int,
    icecream_id int,
    preference int
    )

Die cust_flavors Tabelle enthält alle Auswahlen, die jeder Kunde vornimmt. Um die Auswahl eines Kunden aufzulisten, verwenden Sie:

    SELECT c.customer_name, i.flavor, cf.preference 
        FROM customer c LEFT JOIN cust_flavors cf
        ON c.customer_id = cf.customer_id
        LEFT JOIN icecream  i
        ON cf.icecream_id = i.icecream_id
      WHERE c.customer_id = @customer
      ORDER BY cf.preference

Die preference Spalte würde verwendet, wenn es eine Priorität gibt, die den Geschmacksrichtungen zugewiesen werden soll. Das heißt, der Kunde mag Vanille mehr als Blaubeere (falls das wichtig zu wissen ist).