Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 对数据库表使用某种继承_Mysql_Sql_Inheritance_Enums_Create Table - Fatal编程技术网

Mysql 对数据库表使用某种继承

Mysql 对数据库表使用某种继承,mysql,sql,inheritance,enums,create-table,Mysql,Sql,Inheritance,Enums,Create Table,是否有可能(以及如何实现)对数据库表进行某种继承? 我想要一个父表X 和一张儿童桌B 在表X中,我希望有类似于枚举的东西,其值从子表继承,例如:AVAILABLE,NOT_AVAILABLE。在该表/父表(X)的列中,仅允许这些值。 但是,在子表中,应扩展此枚举,以便可以使用可用、不可用、部分可用的值 我怎样才能做到这一点?你知道外键是什么,或者你至少听说过外键吗?为什么?什么意思?这对扩展枚举有什么帮助?知道外键意味着你对关系数据库有一些了解。了解它们有助于正确构建数据库模型。关系数据库中没有

是否有可能(以及如何实现)对数据库表进行某种继承? 我想要一个父表X

和一张儿童桌B

在表X中,我希望有类似于枚举的东西,其值从子表继承,例如:AVAILABLE,NOT_AVAILABLE。在该表/父表(X)的列中,仅允许这些值。 但是,在子表中,应扩展此枚举,以便可以使用可用、不可用、部分可用的值


我怎样才能做到这一点?

你知道外键是什么,或者你至少听说过外键吗?为什么?什么意思?这对扩展枚举有什么帮助?知道外键意味着你对关系数据库有一些了解。了解它们有助于正确构建数据库模型。关系数据库中没有继承。有关系。它不是面向对象的,而是正在使用的关系代数,这意味着如果你想实现某些东西,你需要遵循关系数据库的规则。你的模型似乎不合适,我问你是否知道外键,以便引导你正确的方向。啊!我懂了。嗯,我不是SQL专家,但我基本上熟悉SQL、RDBMs、FK。。。我是一名Java程序员,我想知道是否有可能在关系数据库中“实现”类似于OO继承的东西。我知道我已经将一个对象映射到关系数据库表,并且我不能使用B.status扩展X.status…;-)
CREATE TABLE `X` ( 
`xId` int(11) NOT NULL AUTO_INCREMENT, 
`addressId` int(11) NOT NULL, 
`poiType` enum('ParkingPOI','ChargingPOI') NOT NULL, 
`status` enum('AVAILABLE','NOT_AVAILABLE') NOT NULL 
PRIMARY KEY (`aId`), 
KEY `fk_x_address_idx` (`addressId`), 
CONSTRAINT `fk_address` FOREIGN KEY (`addressId`) REFERENCES `addresses` (`addressId`) 
ON DELETE NO ACTION ON UPDATE CASCADE) ENGINE=InnoDB AUTO_INCREMENT=217 DEFAULT CHARSET=utf8;
CREATE TABLE `B` (
`bId` int(11) NOT NULL AUTO_INCREMENT, 
`xId` int(11) NOT NULL', 
`status` enum('AVAILABLE','NOT_AVAILABLE','PARTLY_AVAILABLE') NOT NULL  
PRIMARY KEY (`bId`), 
KEY `aId` (`xId`), 
CONSTRAINT `fk_a` FOREIGN KEY (`xId`) REFERENCES `X` (`xId`) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;