sql >> Databasteknik >  >> RDS >> Mysql

Hur kan jag spara flervalsvärden i en SQL-tabell? Hur ska bordet vara?

Du bör implementera tre tabeller:

    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
    )

cust_flavors Tabellen innehåller alla val varje kund gör. För att lista en kunds val, använd:

    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

preference kolumn skulle användas om det finns en prioritet som ska tilldelas smakerna. Det vill säga kunden gillar Vanilla mer än Blueberry (om det är viktigt att veta).



  1. Motsvarighet till MySQL PÅ DUPLIKATNYCKELUPPDATERING i SQL Server

  2. Hur får man det senast infogade ID?

  3. Optimera django-frågan för att dra utländsk nyckel och django-taggit-relation

  4. MySQL kan inte lägga till främmande nyckelbegränsning