Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como posso salvar valores de múltipla escolha em uma tabela SQL? Como deve ser a mesa?


Você deve implementar três tabelas:
    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
    )


O cust_flavors tabela contém todas as seleções que cada cliente faz. Para listar as seleções de um cliente, use:
    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


A preference será usada se houver uma prioridade a ser atribuída aos sabores. Ou seja, o cliente gosta mais de Baunilha do que de Mirtilo (se isso é importante saber).