cev*_*ing 9 oracle database-design
我找到了一篇Ask Tom的文章,解释说Oracle中的CHAR和VARCHAR2没有太大区别.它给人的印象是我应该为我想要存储字符串的每一列使用VARCHAR2(4000 BYTE),即使对于ISO 639-1语言代码,因为它没有任何区别.
我知道对ISO 639-1语言代码使用CHAR(2)来强制执行基本数据约束是有意义的.但这不是一个足够的约束,因为它允许存储'xy'
在不是有效语言代码的列中.另一方面,如果我想更改我的应用程序以使用需要3个字符的ISO 639-2语言代码,我必须支付这个基本约束,并且我必须更改数据库.所以我倾向于从数据库级别放弃约束,因为在我看来,成本高于收益.
考虑到这一点,我想知道为什么我不应该将VARCHAR2(4000 BYTE)用于我打算存储在Oracle数据库中的任何短于4000字节的字符串?
Tom Kyte也在这里反驳你的主张:https://asktom.oracle.com/pls/asktom/f?p = 100:11:0 :::: P11_QUESTION_ID:1145132537055
归档时间: |
|
查看次数: |
4487 次 |
最近记录: |