本人使用C#的window项目写了一个管理系统,然后要使用Mysql数据库作为辅助,目前在解决方案里新建了一个类,用来包装操作MySQL的代码,如下图所示:
然后每个操作数据库的操作,都是相同的操作(打开数据库,操作数据库,关闭数据库),如下图所示:
软件设计最终目的是:可移植到其他电脑使用,可供多人连接数据库,同时操作数据库(就是要满足普通的管理系统所具备的能力)
现在就想请问:
1、这样设计管理系统的数据库,是否合理?是否符合管理系统的的正确设计?
2、这样设计,软件的移植性怎样?怎样连带数据库一起移植这个软件到其他电脑?
3、设计不合理,或者代码书写有问题,希望能得到广大厉害有经验的大佬们的帮助!!!
1、我重点是想知道,我的SQL代码用一个类文件(.cs)来封装合适吗?是不是存在专门写/装SQL代码的东西??
我最终目的是要把这个软件放在校园里用,多人应该达到上百人以上。
2、.net framework不支持,不可以通过下载高级版本的.net framework解决吗?
3、人数可能上百上千,除了你上面说的。我还有什么特别需要注意的问题吗?比如客户端连接数据库的方式之类的?多人同时访问数据库,修改数据库要注意上面的?
问题比较多。还请原谅我的愚昧。
@😀明笔记:
@爱编程的大叔:
没有谁给的任务,全设计都属于本人操作,这个是我的毕业设计 -!!第一次做这么全面的设计,所以有很多问题没有考虑周全。
1、合适的封装对数据库操作方法的方法就是使用 Parameter 或者使用 ORM方式?
2、对于WEB来说,WINFORM就没有一点优点吗?还是说,我做管理类系统,选择WINFORM就是一个错呢?
@😀明笔记:
@爱编程的大叔:
说明一下为什么要问这么大的问题,前几天看到同学的毕业设计,同样是管理系统,同样是Winform(他是网上请的枪手,所以很多疑问不能通过他解决),它的MySQL设计方式和我的完全不一样,他的软件连接数据库,不是通过代码连接数据库,而是通过配置MySQL数据库连接的(具体不知道怎么弄的),而且数据库操作代码不是在同一个解决方案里面的。对于一个刚入门数据库的人,好奇心和茫然让我感到很不安,总觉得自己这样写数据库的方式很不对,同时也害怕面对答辩会遇到未知的问题被老师卡住,所以才会产生这一系列的问题和此贴的由来。
我回答3吧。既然都是简单的insert,建议使用现成的orm来做吧,这样就不用你为每个实体都写一遍insert语句了。
我目前这样写,会不会导致多人访问数据库时,出现阻塞现象?我是个新手,可以详细介绍一下你的orm吗?
@😀明笔记: 那到不会,就是这么写的。感觉你的代码不太好,同一个类里职责太多。orm你可以百度下,很多的
@😀明笔记: 可以的
@😀明笔记: 如果用户就像淘宝那么多,考虑并发是很复杂的事情,除了软件要考虑,硬件上也得考虑。通常情况下,并发不是很高时,你这样写可以。只是你的代码组织太凌乱,复用性也不高
其实你的代码 主要来讲,就是复用性太低
所以你的建议和做法,和其他网友回答的一致?
@😀明笔记: 差不多吧, 设计的代码要像一颗大树,只有根茁壮了,才不怕任何风吹雨打, 分工明确,低耦合, 需要很多东西配合在一起
再者说,一个管理系统,怎么仅仅是你写的这种,还有权限等等,我看你这个, 一个 mysql
就能搞定所有的数据库表操作,你觉得 一个系统,一个程序, 有这么简单嘛?
@Cgrain: 把数据库操作封装在一个类了。然后其他的封装在其他地方 -
@😀明笔记: 类的职责单一性,后面维护也简单,否则照你的逻辑,一个类有上千行或者上万,这就回影响性能了
@Cgrain: 你的意思是,用多个类分别写少数的函数,要比,用少数的类分别写大量的函数性能要好吗????
@😀明笔记: 维护方便,你想想,你一个类就几千行代码,,F12 的查看方法, 所有的方法都聚集在一个类,你觉得好嘛? 而且,你user类,放user用到的方法, login 放login 的方法,人家一眼就能看出关系来,总的来说,
你用一个类完成项目,只能让你方便,而别人会在心里骂你,你分开来弄,至少代码量减少了,而且也分开了逻辑,至少维护就方便了,很多人不喜欢老项目,大多数原因就是 代码量太多
什么都往里面写,看着就烦
设计的合理
才有信心更新与维护, 否则 你还考虑什么 并发与 性能?
至少在大佬眼中, 你这代码 肯定要重构
@Cgrain: 有理!
@😀明笔记: thx!
建议直接使用orm dapper freesql等 都比原始的好 重用性更好