Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Batasan unik Mysql yang memungkinkan satu baris untuk kombinasi

normal cara untuk melakukannya adalah dengan mengekstrak tabel terpisah untuk menahan harga default :

CREATE TABLE price (
    name VARCHAR(255),
    price INT,
    PRIMARY KEY (name, price)
) ;

CREATE TABLE defaultPrice (
    name VARCHAR(255),
    price INT,
    PRIMARY KEY (name),
    FOREIGN KEY(name, price) REFERENCES price(name, price)
);

Kebanyakan orang akan menyarankan untuk memperkenalkan kunci pengganti:

CREATE TABLE item (
    id INT PRIMARY KEY,
    name VARCHAR(255),
    UNIQUE(name)
);

CREATE TABLE price (
    itemId INT,
    price INT,
    PRIMARY KEY (itemId, price),
    FOREIGN KEY (itemId) REFERENCES item (id)
) ;

CREATE TABLE defaultPrice (
    itemId INT,
    price INT,
    PRIMARY KEY (itemId),
    FOREIGN KEY (itemId, price) REFERENCES price (itemId, price)
);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menggunakan OR dalam LIKE Query di MySQL untuk membandingkan beberapa bidang

  2. PHP/PDO/MySQL:memasukkan ke MEDIUMBLOB menyimpan data yang buruk

  3. Pilih bilangan bulat yang bertambah

  4. Apakah ada perintah MySQL untuk mengimplementasikan sesuatu seperti tabel drop kecuali t1,b2?

  5. PHP menyiapkan pernyataan dan transaksi dalam satu lingkaran