Mysql
 sql >> база данни >  >> RDS >> Mysql

Уникално ограничение на Mysql, позволяващо един ред за комбинация

нормално начин да направите това е да извлечете отделна таблица, за да запазите цената по подразбиране:

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

Повечето хора ще посъветват въвеждането на сурогатни ключове:

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. Вземете име на колона вместо стойност на колона

  2. Сравняване на двоични стойности в MySQL

  3. Броят на колоните не съвпада с броя на стойностите в реда, но го прави

  4. предаде параметри в съхранената процедура за вмъкване на заявка в laravel 4

  5. как да разделя таблица по колона дата и час?