这样的数据结构怎么写程序

microcoy 2012-12-05 08:53:55
我的数据结构是如下代码框所述,描述的是病人入院治疗的信息,但是还要记录每个病人根据病况在不同时间点用药和治疗状况的信息,而且每个人的病况不一样,用药次数不确定,但是用药和治疗是需要登记的,就相当于一个表中嵌套着另外一个表,我试图使用两个表来记录信息,可是有很多缺陷,最后创建了records字段用数组来记录信息,可是不知道代码该怎么写,拜求高人

CREATE TABLE `patient` (
`id` int(10) NOT NULL auto_increment,
`name` varchar(12) NOT NULL,
`sex` int(6) default NULL,
`age` int(12) default NULL,
`cdate` date default NULL,
`records` text,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='InnoDB free: 9216 kB';
...全文
187 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2012-12-05
  • 打赏
  • 举报
回复
引用 5 楼 microcoy 的回复:
关键是前一个表的数据较大,我使用添加表格列的形式一次想吧数据写入数据库,下次检索病人记录比较好搞,我开始使用分表,感觉总不舒服,难以理解,所以才求助!
既如此,想必你是已有电子文档记录了 那么数据表结构应能适应电子文档的追加,而不是凭空臆造 你可以贴出电子文档的片段
microcoy 2012-12-05
  • 打赏
  • 举报
回复
关键是前一个表的数据较大,我使用添加表格列的形式一次想吧数据写入数据库,下次检索病人记录比较好搞,我开始使用分表,感觉总不舒服,难以理解,所以才求助!
yiko88 2012-12-05
  • 打赏
  • 举报
回复
最好是用分表形式。如果读取基本的数据不需要读取病人的吃药情况,只有当要看病人具体的吃药情况下,才读取另一个表,性能上比较好。
mu_rain 2012-12-05
  • 打赏
  • 举报
回复
将用药信息的数据 serialize( $dragInfoAr ); records 取出来时 unserialize($row->records); 或者用楼上的 json_encode 和 json_decode 再或者自己写编码和解码规则,总之 能把数组转成string 保存,取出后能还原成 array 就ok了。 我个人偏好用 serialize
cRazy谢不清 2012-12-05
  • 打赏
  • 举报
回复
最好还是分表吧 表与表之间弄个关系字段关联起来 字段要存数组的话 存入前 1.用json_encode()打包成json字符串格式存 2.用serialize() 打包成serialize字符串格式存
$array = Array("name"=>"Danny","age"=>"20");
	echo "serialize格式:".serialize($array);
	echo "<br/>";
	echo "json格式:".json_encode($array);
这两个方法,个人推荐用第一个,其他语言对json格式的支持比较好,而且json打包后字符串比较短。 打包成字符串之后,存入你的records字段就可以了,读出来的时候解压一下即可变回数组
xuzuning 2012-12-05
  • 打赏
  • 举报
回复
既然你把细节都打包放入 records 中了,那么插入和浏览都不是什么大问题。检索和统计有一定的难度,不过似乎没有必要做 入院登记: mysql_query("insert into patient (name,sex,age,cdate,records) values ('$name',$sex,$age,now(),'')"); $id = mysql_insert_id(); //入院号 用药和治疗登记: $id = $_POST['入院号']; $s = json_encode($POST); mysql_query("update patient set records=concat(records,',','$s') where id=$id"); 读取 $rs = mysql_query("select * from patient"); $r = mysql_fetch_assoc($rs); $ar = json_decode('[' . substr($r['records'], 1) . ']');//还原数据到数组

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧