我有点停留在一个棘手的情况与MySQL数据库设计我webservice.The DB们最初这种结构:MySQL数据库结构
CREATE TABLE IF NOT EXISTS `Disease` (
`Name` varchar(20) NOT NULL,
`Age` int(10) unsigned NOT NULL,
`Descriptin` text NOT NULL,
`Sex` varchar(10) NOT NULL,
`Ethnicity` varchar(20) NOT NULL,
PRIMARY KEY (`Name`,`Sex`,`Ethnicity`),
KEY `Sex` (`Sex`),
KEY `Ethnicity` (`Ethnicity`)
)
ALTER TABLE `Disease`
ADD CONSTRAINT `Disease_ibfk_1` FOREIGN KEY (`Sex`) REFERENCES `Sex` (`Sex`) ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `Disease_ibfk_2` FOREIGN KEY (`Ethnicity`) REFERENCES `Ethnicity` (`Ethnicity`) ON DELETE CASCADE ON UPDATE CASCADE;
所以基本上疾病(名称,年龄,说明, 性别,种族)性别和种族是两个性别和种族表的外键,因为它们可以具有多个价值。
我们的问题,我需要添加另一列称为症状,这将是多值的,但我不能声明为外键,我需要的是这样的:一排
例如
Disease(Name="DiseaseName",Age="40",Description="is caused by...",Sex="male",Ethnicity="Caucasian",Symptoms"Headache,sorethroat,fever")
所以基本上我需要症状来包含一个字符串的数组,但显然我不能这样做,因为它的RDBMS
谢谢大家的时间和精力!
是的,我实际上已经实施了其他两列性别和种族你说的方式,问题是,他们不解决我的需要。有没有其他解决方法? – rosa
@罗莎:那么,恩呢怎么样? –
其实只是通过性的枚举:),它的作品谢谢!但是对于原来的问题,它不会起作用,因为使用枚举可以为每个记录存储一个值 – rosa