回答

收藏

与数据库无关的应用程序的数据库设计

技术问答 技术问答 162 人阅读 | 0 人回复 | 2023-09-14

新应用程序的 数据库设计中 我应该考虑什么,该应用程序应能够支持最常见的关系数据库系统(SQL' A, b  t* P( x/ N  W, p- r
Server,MySQL,Oracle,PostgreSQL …)?
: i0 G" n: r& s9 \2 R2 f1 G值得付出努力吗?有什么陷阱?
; r, m' {9 G: {- I               
3 M: g+ [! \3 l* J. y" s+ B6 N解决方案:
, j8 |3 j, |8 X5 a                , ~- v8 A8 z5 Q: l  j1 E
: s# c; y+ _  [. _4 z* R! k" x
' V( h0 z" _) W
                简短的答案是坚持使用标准的或接近标准实现的功能。更详细的含义是:( Q/ p+ i6 q( l+ x/ n1 r' m; }  D/ G
6 h5 v% Q. W7 ]; l
避免使用任何使用数据库过程语言(存储过程或触发器)的方法,因为这是系统之间的巨大差异所在。您可能需要使用它们来模拟某些功能,但不要使用它们来创建自己的功能。
0 n% y# b9 p" l( F2 _
9 i9 E) C1 r. v" V将自动递增字段的序列与字段本身分开。对于MSSQL,这看起来有些强制,但无需任何仿真修复,即可在Oracle,DB / 2等环境中完全实现。6 ]4 n# a3 _! }$ ]3 i, S

" w4 p4 O1 C7 h: M( G+ E对于要针对的一组引擎,将char和varchar字段保持在最小最大大小以下。
5 u4 F% b" b! v7 \+ B$ d+ n
! \$ V" Y( k. c! O在编写查询时,请使用完整的JOIN语法,并用括号括住JOIN,以便每个联接都在单个表和带括号的表达式之间。, f2 ~) |/ p& l
0 F6 E' G" C- \
将日期处理逻辑保留在代码中,而不要保留在查询中,因为许多日期函数不在标准范围内。(例如:如果您想获取过去两周的资料,请在代码中计算两周前的日期,然后在查询中使用该日期。)
7 p. V0 c# |6 w1 \8 ]" x
5 \* v* T) @0 |" }- m7 F- X

4 p; U8 s! \# Y* U/ U: h除此之外,所涉及的工作不应太吓人,因此值得这样做。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则