我应该将掩码值保存在数据库中吗?

Mig*_*ore 1 maskedinput

我正在开发一个保存电话号码的应用程序,电话号码的掩码是(99) 9999-9999。

我应该将整个字符串保存在数据库中吗?IE:

(99) 9999-9999
Run Code Online (Sandbox Code Playgroud)

或者只是数据,即:

9999999999
Run Code Online (Sandbox Code Playgroud)

并且只在 UI 中格式化它?

我正在走向第二个,但我无法给出充分的理由来解释为什么会这样。我同事的观点是,第一个(带有掩码的)会更容易,因为没有必要在不同的 UI(报告、网页)中应用掩码。

Iły*_*sov 6

分离数据和表示逻辑——这是一个很好的实践。

我建议您仅存储数字,因为数字是数据,而格式不是(仅在数据库中存储数据)。

其次,也许此时您有一种格式,但相信我 - 在某些时候您将需要另一种格式,然后您将不得不重新格式化它(某种墨菲定律)

当然,出于性能原因,您可以缓存视觉呈现 - 为其创建附加字段并将其用于显示,在更新主“数据”字段时更新它