回答

收藏

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

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

新应用程序的 数据库设计中 我应该考虑什么,该应用程序应能够支持最常见的关系数据库系统(SQL0 X) F8 G) u% {2 x9 {# Q4 k
Server,MySQL,Oracle,PostgreSQL …)?2 o: e$ o- `9 ?6 Y) @
值得付出努力吗?有什么陷阱?/ O6 c/ T1 ]! b; ?3 V8 t
               
: ^' ]% h8 U; Y2 ]! c% K3 I解决方案:/ Z5 F0 D6 g0 L: W
               
/ @' T5 f! [; V! R
8 E& S; z  f# l7 @( z
% c$ o9 o& p9 w3 Z  E- B( C                简短的答案是坚持使用标准的或接近标准实现的功能。更详细的含义是:3 g  w( J# I' K% D7 P) T

% g1 N5 P$ M' v/ e7 i1 C避免使用任何使用数据库过程语言(存储过程或触发器)的方法,因为这是系统之间的巨大差异所在。您可能需要使用它们来模拟某些功能,但不要使用它们来创建自己的功能。- {; k" N4 Z' {. ]

# l; _3 f. i2 m" H% f7 `将自动递增字段的序列与字段本身分开。对于MSSQL,这看起来有些强制,但无需任何仿真修复,即可在Oracle,DB / 2等环境中完全实现。
, D/ t8 r0 V2 {, t: U
. c6 U+ `  m  }% ^. J  M) W对于要针对的一组引擎,将char和varchar字段保持在最小最大大小以下。: J9 Q, m6 U" B& [4 Y& ]
; `& a" A7 G! V, F
在编写查询时,请使用完整的JOIN语法,并用括号括住JOIN,以便每个联接都在单个表和带括号的表达式之间。
5 e: c* x4 F+ x( r, i4 F5 w+ P. b% C6 w9 ?( g2 @
将日期处理逻辑保留在代码中,而不要保留在查询中,因为许多日期函数不在标准范围内。(例如:如果您想获取过去两周的资料,请在代码中计算两周前的日期,然后在查询中使用该日期。)
4 A7 k' L6 C4 v4 N/ |, O; l0 g, y- @, q/ ~; ]+ K$ O2 Z
- L7 X8 g5 G8 }" p4 X; C8 q
除此之外,所涉及的工作不应太吓人,因此值得这样做。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则