1

mysql数据库问题。有对象(域)的系统。每个域都有自己的表。所有对象都有唯一的 16 个 varchar id - guid

CREATE TABLE `guid` (   
   `guid` varchar(16) NOT NULL,
   `obj_type` varchar(45) NOT NULL,
   `obj_id` varchar(45) NOT NULL,
 `actived` tinyint(4) NOT NULL DEFAULT '1',
   PRIMARY KEY (`guid`) 
)
ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `product` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `name` varchar(150) NOT NULL,    
    /*....*/ 
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

CREATE TABLE `catalog` (   
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `name` varchar(150) NOT NULL,
    /*....*/ 
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

我想通过外键连接表 guid(fields: obj_type, obj_id) 和域表(field:id)。

4

1 回答 1

1

外键关系涉及一个包含中心数据值的父表,以及一个具有相同值的子表,它们指向其父表。FOREIGN KEY 子句在子表中指定。父表和子表必须都是 InnoDB 表。它们不能是 TEMPORARY 表。

CREATE TABLE product 
  ( 
     id   INT(11) NOT NULL auto_increment, 
     name VARCHAR(150) NOT NULL, 
     PRIMARY KEY (id), 
     FOREIGN KEY (id) REFERENCES guid (guid ) 
  ) 
engine=myisam 
DEFAULT charset=utf8; 
于 2012-05-21T09:26:59.637 回答