对公司数据库的设计不理解

longtramp 2008-06-30 05:00:59
最近新到一家公司做一个OA系统,使用SSH三层架构
1:所有的数据库表主键都不自动递增
2:所有的字段都为String类型
3:所有表的关联都需要自己维护也就是没有对象导航的功能,没有外键的使用
这样设计有什么样的好处??
...全文
106 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
brz97 2008-07-01
  • 打赏
  • 举报
回复
主要是为了数据库性能吧
完全通过代码逻辑控制,减少数据表之间的级联更新
减少数据库负担
对业务逻辑设计者来说不是好事
tianyidan 2008-06-30
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 hellwindy 的回复:]
1:所有的数据库表主键都不自动递增 这样可以用统一的序控制,因为某些数据库如oracle是没法在表上设自增列的
2:所有的字段都为String类型  这样可以避免数据转换,比如日期和字符串,另外更改数据库不会有问题,例如mssql和oracle不是完全兼容类型的
3:所有表的关联都需要自己维护也就是没有对象导航的功能,没有外键的使用 外键用了你还要异常控制,还不如不用,自己控制更清楚

[/Quote]
说的很清楚,但是我个人觉得外键还是要的。严禁是需要的,而且用HIBERNATE的话,会给你省很多的事情。
全粘架构师 2008-06-30
  • 打赏
  • 举报
回复
1:所有的数据库表主键都不自动递增 这样可以用统一的序控制,因为某些数据库如oracle是没法在表上设自增列的
2:所有的字段都为String类型 这样可以避免数据转换,比如日期和字符串,另外更改数据库不会有问题,例如mssql和oracle不是完全兼容类型的
3:所有表的关联都需要自己维护也就是没有对象导航的功能,没有外键的使用 外键用了你还要异常控制,还不如不用,自己控制更清楚
sunzhyng 2008-06-30
  • 打赏
  • 举报
回复
开发者省事,主键不自增可能是为了防止猜测的请求
animety 2008-06-30
  • 打赏
  • 举报
回复
SSH三层我不是很懂,但是单看:2:所有的字段都为String类型!
这个就知道如果不是必须的话,纯属浪费啊!
还有:1:所有的数据库表主键都不自动递增
如果主键是设计成了标记ID之类那么我想自动递增是需要的....
吴冬冬 2008-06-30
  • 打赏
  • 举报
回复
全由hibernate来负责了
移植性好
容错性好


但是一个很重要的缺点
伸缩性差
当数据量大的时候就会体现的很明显
kjah 2008-06-30
  • 打赏
  • 举报
回复
好处就是减少数据库报错。。。。

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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