回答

收藏

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

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

新应用程序的 数据库设计中 我应该考虑什么,该应用程序应能够支持最常见的关系数据库系统(SQL; U/ Y0 H$ J5 n9 u- Q
Server,MySQL,Oracle,PostgreSQL …)?2 m+ r: @! G6 b
值得付出努力吗?有什么陷阱?9 c. ]1 N" u5 P7 u3 Y8 Y
                6 j7 L  \, ^% u2 F& Z
解决方案:/ ?! r: D8 z! X8 r1 [
               
+ i* K! k) n- y) w
3 N4 [! m3 M& _, n" h' P7 y0 d# c9 g  h$ v7 t
                简短的答案是坚持使用标准的或接近标准实现的功能。更详细的含义是:# ^  v1 @5 D; i! [  A
0 n1 v% L  B: `( j" F% |
避免使用任何使用数据库过程语言(存储过程或触发器)的方法,因为这是系统之间的巨大差异所在。您可能需要使用它们来模拟某些功能,但不要使用它们来创建自己的功能。* X' [" j# k1 O
" n! p, R7 |1 R5 W
将自动递增字段的序列与字段本身分开。对于MSSQL,这看起来有些强制,但无需任何仿真修复,即可在Oracle,DB / 2等环境中完全实现。
2 U+ j, T7 m4 a) n/ K' X6 U" j. R
  x- f$ U' {) D0 G2 ~- K$ |对于要针对的一组引擎,将char和varchar字段保持在最小最大大小以下。
0 x3 K. C* \+ d; L( g
9 ]% ^1 n6 t0 `- p在编写查询时,请使用完整的JOIN语法,并用括号括住JOIN,以便每个联接都在单个表和带括号的表达式之间。
  a% T/ n- t' N. ~1 o& e( W9 z* A' v. q4 e* v
将日期处理逻辑保留在代码中,而不要保留在查询中,因为许多日期函数不在标准范围内。(例如:如果您想获取过去两周的资料,请在代码中计算两周前的日期,然后在查询中使用该日期。)9 I: b6 O! ?8 U9 g6 x7 E
# V: |1 f" N8 d5 G0 u
% e5 P1 W# r4 Y* [
除此之外,所涉及的工作不应太吓人,因此值得这样做。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则