我想创建一个存储医生的表。我的问题是如何存储医生的专业,因为医生可以有多个(口腔医师,皮肤科医生)。到目前为止,我已经使用了varchar类型,并以逗号分隔的格式存储了值。MySQL - 我应该使用什么数据类型来存储一组字符串
CREATE TABLE IF NOT EXISTS `doctors` (
`doctor_id` int(11) NOT NULL AUTO_INCREMENT,
`email` varchar(50) NOT NULL,
`password` varchar(30) NOT NULL,
`firstname` varchar(30) NOT NULL,
`lastname` varchar(30) NOT NULL,
`speciality` varchar(254) NOT NULL,
`lat` decimal(10,8) NOT NULL,
`lng` decimal(10,8) NOT NULL,
`phone` char(10) NOT NULL,
`mobile` char(10) NOT NULL,
PRIMARY KEY (`doctor_id`)
);
但我的问题是当查询表时。如果我想找到有专业的“阿尔法”医生,我这样做
select * from doctors where speciality='alfa'
有两个专业(阿尔法,β),医生将不包括在结果中。我唯一想到的是使用LIKE而不是WHERE,但我认为必须有更好的方法。什么是最好的方式来实现这个(也许从varchar不同的数据类型)?
使用foriegn键 – karthikr
@karthikr事实上,最好的*数据类型*,以避免问一个常见的问题:'我怎样才能过滤逗号分隔的一组ID?' –