今天我在了解某一功能时,发现数据库列名居然是中文的,工作六年多还是一回见到。只记得上学的时候,我们老师说过会出现兼容性等问题,具体已记不清楚了。
我好事的百度了下,整理了各网友给出的答案,希望对大家有帮助。
我们在使用中文的表名和列名的时候,先确认我们使用的数据库是否支持中文表名和列名。例如我最常用的SQL Server,它就是支持使用中文的。现在主流的数据库,对多语言的支持也在日益完善。
下面我们来说说选用中文的适合场景及优缺点。
场景:
1、在不熟悉的领域(机械,医疗等专业)里,英文往往并不能准确的翻译,而使用拼音或缩写也不直观,不如直接使用英文。
2、在简历的、快速开法的(低成本仅供演示的)项目中,往往对数据字典没什么特别的要求,也无需考虑稳定性、迁移性等。使用中文可以方便修改逻辑结构模型,方便SQL语句设计,而且将来可以随时改为英文字段名。
优点:
1、不必考虑命名规范
2、很清晰的知道我们要操作的字段,看起来简直一目了然。--当然如果数据库被其他人进入也是一目了然,安全性差一点。
3、页面显示的时候无需转换。
4、添加、更改字段属性,无需调整永久字段。 --关于这一点,我并没有理解。若有人明白,请帮助下我,万分感谢。
缺点:
1、编写时中文的“,”和英文的“,”,中文的全角半角等切换太麻烦,很容易出问题。
2、看起来有点Low,也容易出现打错列名。--介于智能输入法的智能提示及我们国家语文的博大精深。
3、中文储存预英文储存有差异,所以一些系统视图中可能会有一些性能或者维护上的影响。合并列的时候很麻烦。
4、兼容性差。如多语言环境下、多种数据库情况下,兼容性差。在Java中,是不支持中文列名的,它会直接导致你的操作不成功。
总的来说,选用中文表名列名弊远大于利。所以为了避免不必要的麻烦和莫名其妙的错误,其他场景下还是选用英文为好。
但我们需要注意的是:
1、一定要命名规范。
2、要避免一些名称与关键字冲突。
3、考虑界面友好,页面显示一定要显示中文。