Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Unikalne ograniczenie Mysql umożliwiające pojedynczy wiersz dla kombinacji

normalny sposobem na to jest wyodrębnienie oddzielnej tabeli, aby przechowywać domyślną cenę:

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)
);

Większość ludzi doradzi wprowadzenie kluczy zastępczych:

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. Zarządzaj MySQL za pomocą phpMyAdmin na Ubuntu 10.10 (Maverick)

  2. SQLite - ORDER BY RAND()

  3. Sfinks i czy miałeś na myśli...? sugestie pomysł. Czy to zadziała?

  4. PDO zwraca kolumny liczb całkowitych jako String w PHP5.4

  5. Jak korzystać z MySQL na Macu?