Mysql
 sql >> Database >  >> RDS >> Mysql

Come posso salvare valori a scelta multipla in una tabella SQL? Come dovrebbe essere il tavolo?

Dovresti implementare tre tabelle:

    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
    )

I cust_flavors la tabella contiene tutte le selezioni effettuate da ciascun cliente. Per elencare le selezioni di un cliente, utilizza:

    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

La preference colonna verrebbe utilizzata se c'è una priorità da assegnare ai sapori. Cioè, al cliente piace più Vanilla che Blueberry (se è importante saperlo).