问个比较浅的逻辑问题,求解答

huanghuangtao 2012-07-16 08:46:31
我想做一个新增功能,是关于学生表,民族表,学位表之类的,其中学生表有民族ID,学位ID。关于新增功能,因为学生信息表有很多外键,例如民族ID,学位ID之类的,但新增填写的时候只需填写名称,例如民族名称,学位名称,却要在学生信息表中增加相应的ID,例如民族ID,学位ID,那新增的时候是不是先根据XX名称,找到并返回XXID,再把这些ID添加进去学生表?我暂时只想到这个办法,请问有更好的办法吗?
...全文
179 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
threenewbee 2012-07-17
  • 打赏
  • 举报
回复
如果你是一个Office小姐,工作的内容是使用Excel,那么这也不失为一个好办法。
huanghuangtao 2012-07-17
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
第一个p哥已经说了,直接用学位名称或者名族名称作为主键。第二个,页面页面表现上,最好用下拉框,或者在页面上加几个下拉框,自动绑定。
假如这两个都不能修改,或者说修改较麻烦,那么在点击 添加或者修改按钮的时候,第一步是先维护 和学生表相关联的 外键表信息。。例如:
------------------------------------------------------------------……
[/Quote]
我最后用了下拉框获取ID···一般来说,外键表都是已经有足够数据了,除非是设计数据库那个人没写上去,而且,我看你说的,好像也是判断名称然后返回ID,和我一开始的思路一样···不过还是谢你写了那么详细···
huanghuangtao 2012-07-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
如果你觉得画蛇添足,那么你为什么还要学人家用Id呢?可以直接用名称啊!

我们知道,假设中国的“回族”改了名字,那么肯定是一个浩大的工程。因此我们完全没有担心民族的名称会经常修改。
[/Quote]
因为这是涉及到3NF数据库设计问题,数据库是人家设计的,所以我只好按照人家做好的数据库去写代码···数据库里面只有外键ID和基础属性,我也是逼于无奈啊。
kensouterry1 2012-07-17
  • 打赏
  • 举报
回复
参考参考+吸收吸收
zjq8888882009 2012-07-17
  • 打赏
  • 举报
回复
第一个p哥已经说了,直接用学位名称或者名族名称作为主键。第二个,页面页面表现上,最好用下拉框,或者在页面上加几个下拉框,自动绑定。
假如这两个都不能修改,或者说修改较麻烦,那么在点击 添加或者修改按钮的时候,第一步是先维护 和学生表相关联的 外键表信息。。例如:
---------------------------------------------------------------------------
添加学生时,输入了一个学位名称,1.判断学位名称是否存在,不存在要加一条记录。并返回ID
2.存在就直接返回ID.
输入名族时,同上。
---------------------------------------------------------------------------
修改学生时,输入一个学位名称,1.根据学生ID得到学位名称。2.判断学位名称是否变化。3.如果有变化,判断变化后的学位名称是否存在,不存在添加,返回学位ID.存在不添加,查询返回ID. 4.如果没有变化,保持不变。
----------------------------------------------------------------------------------
删除学生时,1.判断除了学位除了当前学生外,有没有其他人用,如果没有,删除此学位信息,如果有不删除。民族同上。
2.删除学生信息。
----------------------------------------------------------------------------------

这种设计的好处是,把学位信息,名族信息的管理嵌入到学生信息管理中。页面少了,但是相对应的代码的复杂度较高。
关键在于,维护学生表之前要先维护 与学生表相关联的 外键表信息。
  • 打赏
  • 举报
回复
如果你觉得画蛇添足,那么你为什么还要学人家用Id呢?可以直接用名称啊!

我们知道,假设中国的“回族”改了名字,那么肯定是一个浩大的工程。因此我们完全没有担心民族的名称会经常修改。

110,561

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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