JAVA.JDBC.Oracle相关的项目

各位大神好,我是JAVA初学者,现在在做一个和JAVA JDBC Oracle相关的项目。名称为医院住院管理子系统,其中有病人表,医生表,医院部门表,通过这些,我们分为医生和病人已经完成了增删查改的功能。但在我最初设计的时候,打算每次添加一个病人的时候,通过JAVA代码实现同时为这个病人生成一张住院日志表,其中包括他的每天的信息,这些功能我们都已经实现。但在今天让老师看的时候,他认为我们这种每加一个病人给他创建一张表的操作在数据库中很占空间,难道你几万个病人几万个表,我就想知道正常的表格在数据库里面占空间有那么大吗?几万条信息和几万张基本表的空间占据我觉得差别没有那么大,求各位解答我他们在数据库中占据空间的问题。从实际看来,我觉得我们这种想法很符合住院病人所需要的信息,我每天都可以查看到我住院期间每天的记录,挺符合需求。所以我不想改动我的项目。如果这两者占据空间差别不是很大,我打算以此为依据,让老师接受我们的观点,求各位体谅小白做一个项目的坚信,详细解答图片说明

有个很大的问题,
先不说占空间的问题,,几万张表,打开数据库可视化工具,,看起来得多壮观
图片说明

(1)不利于搜索,,,

我需要检索二楼所有病房的病人的信息,,,
你这种设计能检索?不方便吧,
先不说表连接的问题,,二楼有是几个病人,你需要懂十几个表里去查找。。。
表名如何确定?就算可以动态拼接sql,,查询效率是不是很低,,访问十几张表,然后还得做连接。
##(2)不利于调试。
如果你用动态拼接sql的话,,至少得看下sql语句心里才舒坦吧,,十几个表名,,长不长(不长?,,检索所有病人信息,现在长吧)
sql语句都能打印几百行,,,不合适吧。
##(3)不利于修改。
加入有一天,,你需要修改病人的信息,,,给病人增加一个属性,比如(年龄,,假如你之前没有现在要加上)
你是不是需要去修改所有的表结构,,

。。。。哎,数据库设计是门艺术,,,仅供参考,互相学习

可能你不觉得加一个病人加一张表是一件什么样的事情,就好像用桶来装数据,本来一个桶就能装完,整整齐齐,你非要每有一个数据加一个桶,最后房间里都是桶,可能说知道每个表里面放的是单独的数据,直接拿就行了,没影响。但是如果某天:
1.你需要一次性拿出多个病人的数据(比方说都患有某种疾病),那么你要怎么查?查询整个数据库吗?
2.如果某天你的数据库结构需要改变,病人需要添加一个栏位(比如需要新增每个病人的病史),你要怎么办?几万张表,一条条加吗?就算用语句也需要不少时间,而且本来每张表结构都是相同的。
3.如果你用的映射(比如hibernate实体类),你需要创建多少个实体类你想想
4.当你的数据量大到一定的程度,空间占据相差真的不小
5.对表进行操作,永远没有对表数据进行操作简单

举个例子:假如国家要对每个公民进行身份登记,登记信息都一样,按照你的说法那就是为每个公民创建张表,最终数据库就有3亿张表,这个不现实吧?
对于你做的项目,我的想法是加字段,用来存路径,你可以把病人信息写进word/txt里面,记录对应病人的信息(可以更新的)这个文件的路径放到那个字段里,当要查看病人的信息时直接调用这个字段下对应的日志文件打开
(个人想法)