sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo puedo guardar valores de opción múltiple en una tabla SQL? ¿Cómo debe ser la mesa?

Debe implementar tres tablas:

    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
    )

Los cust_flavors La tabla contiene todas las selecciones que hace cada cliente. Para listar las selecciones de un 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

La preference se usaría la columna si hay una prioridad para asignar a los sabores. Es decir, al cliente le gusta más Vanilla que Blueberry (si es importante saberlo).