Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm cách nào để lưu các giá trị nhiều lựa chọn trong SQL-Table? Làm thế nào nên được bảng như thế nào?

Bạn nên triển khai ba bảng:

    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 bảng chứa tất cả các lựa chọn mà mỗi khách hàng thực hiện. Để liệt kê các lựa chọn của khách hàng, hãy sử dụng:

    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 cột sẽ được sử dụng nếu có mức độ ưu tiên được gán cho các hương vị. Đó là, khách hàng thích Vanilla hơn Blueberry (nếu điều đó quan trọng cần biết).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Câu lệnh chuẩn bị multi_query trong PHP MySQLi

  2. Không thể tạo PoolableConnectionFactory (Quyền truy cập bị từ chối đối với người dùng '' @ 'localhost'

  3. Di chuyển từ MySQL sang PostgreSQL trên Linux (Kubuntu)

  4. Thực hành tốt Chuẩn bị liên tục

  5. thay thế hàng loạt thành cho CodeIgniter Active Record