0

テーブル名 Service(product, loca, from_agent, to_agent) があります。

製品参照製品 (pno)

from_agent は、Customer(cno) U Driver(drno) U Airline(Ano) を参照します

to_agent 参照 Customer(cno) U Driver(drno) U Airline(ano)

cno = 名前、住所などの他の詳細を持つ別のテーブル名「顧客」である顧客番号

drno = 名前、住所などの他の詳細を持つ別のテーブル名「ドライバー」であるドライバー番号

ano = 出発地、出発時刻、到着時刻などの他の詳細を含む別のテーブル名「航空会社」である航空会社番号.

変更が行われる前に製品テーブルの外部キーを強制的にチェックするトリガーを書きたいと思います。ローカル マッピングの透過性を想定

助けてください。トリガーと分散データベースについて学んでいます

4

1 に答える 1

0

ショップのデータベースを想像してみましょう: アイテム、製品、ブランド (例: 「プジョーのブランドとして「プジョーの自転車」のアイテムとして参照される「縞模様の黄色のプジョーの自転車」。

CREATE TABLE IF NOT EXISTS `brands` (
`brandId` int(11) NOT NULL AUTO_INCREMENT,
`brandName` varchar(30) NOT NULL,
 PRIMARY KEY (`brandId`)
 ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;

CREATE TABLE IF NOT EXISTS `items` (
  `itemId` int(11) NOT NULL AUTO_INCREMENT,
 `generalProductId` int(11) NOT NULL,

    PRIMARY KEY (`itemId`)
   ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

   CREATE TABLE IF NOT EXISTS `products` (
   `productId` int(11) NOT NULL AUTO_INCREMENT,
   `productName` varchar(200) NOT NULL,
   `productBrand` int(11) NOT NULL,

   PRIMARY KEY (`productId`)
  ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;

 ALTER TABLE products ADD FOREIGN KEY(productBrand) REFERENCES brands(brandId) ON DELETE RESTRICT ON UPDATE     CASCADE;
 ALTER TABLE items ADD FOREIGN KEY(itemBrand) REFERENCES product(productBrand) ON DELETE RESTRICT ON UPDATE CASCADE;

したがって、ここでは外部キー制約を使用して、Items が Product で指定されたブランドを継承し、Product は Brands からそれ自体を継承します。この場合、特別な BrandId の Name を変更すると、子テーブルはそれを認識します。ON DELETE RESTRICT は、チェーンを壊すことができないことを意味し、データベースでは、他の場所で参照されているエントリを削除することはできません:)

于 2013-10-26T11:57:06.680 に答える