【问题标题】:Would it be difficult to convert an ASCII database model to Unicode?将 ASCII 数据库模型转换为 Unicode 会很困难吗?
【发布时间】:2018-06-07 18:27:12
【问题描述】:

我正计划开发一个 Windows 应用程序(最终扩展到移动平台等其他平台),并且一直在研究 ASCII 和 Unicode 数据模型用于数据存储的优缺点。最初,我的应用程序不需要支持除英语以外的任何语言,因此消除了一个因素。

我倾向于将 ASCII 用于我的数据模型,但是,如果我想在将来将其更改为 Unicode,这会是一项非常艰巨的任务吗?我计划使用 MS SQL Server 作为数据库并在 C# 上进行开发。

我主要担心的是,如果我确实选择更改数据模型类型,我当时的现有数据(在应用程序实施之后)可能会被修改或更改,并且将无法使用。

谢谢

【问题讨论】:

  • using ASCII for my data model 是什么意思?
  • 我想你的意思可能是 varcharnvarchar。如果多语言是未来的可能性,我建议你现在就使用 nvarchar。
  • 英文——不仅仅是 ASCII。 (看看我在那里做了什么,两次???????)

标签: c# database unicode ascii store


【解决方案1】:

经验法则

对于所有用户输入的数据总是使用 NVARCHAR(n),不要浪费 浪费时间在糟糕的设计上。

事实上,除非您确定您不需要在某些字段中存储 Unicode,或者您正试图将数据库中的字节保存到第 n 级,否则您最好使用 NVARCHAR(n) 并保存您的自己以后有很多麻烦

直接回答你的问题

重新创建表和跨数据复制并不难,但是当你可以正确地做这件事并且现在不费吹灰之力地证明未来的目标时,为什么还要给你自己带来麻烦

【讨论】:

  • SQL 服务器手册建议 NVARCHAR 每个字符始终使用 2 个字节,因此如果没有 unicode 数据并且 OP 有几 TB 的文本,它们可能会节省存储成本。
  • 是的,这确实是真的,不过我记下了这一点。谢谢
  • 我的商店已经使用 varchar 超过 15 年了,我们从未遇到过需要 nvarchar 的实例。是的,这些都是基于网络的应用程序,有很多用户输入。
猜你喜欢
  • 1970-01-01
  • 2011-05-20
  • 2015-05-08
  • 2013-05-17
  • 1970-01-01
  • 1970-01-01
  • 2020-02-20
  • 2018-03-21
  • 1970-01-01
相关资源
最近更新 更多