关于数据库设计的建议最佳实践/标准 - Oracle

时间:2010-11-01 21:00:46

标签: oracle database-design standards

我正在设计一个新应用程序的数据库,这是我已经完成了一千次,但在这种情况下,我突然开始怀疑我以前从未停止过的某些方面。对于以下事项是否有一些标准/建议?

  • 什么是用于存储货币的推荐数据类型(没有财务操作,只显示)。
  • 用于存储电话号码(国际)的建议尺寸
  • 建议存储名字/姓氏的最小尺寸(最小意味着最小建议最大尺寸)
  • 建议存储评论区块的最小尺寸。(最小值也指最小建议尺寸)

我知道每个应用程序都有自己特定的要求需要考虑,但我觉得必须有一些比直觉和常识更具体的东西。

一如既往,将非常感谢帮助。

4 个答案:

答案 0 :(得分:1)

货币:

NUMBER(15,2),实际上取决于您希望遇到的数字有多大。

电话号码:

VARCHAR2(30),请不要伤害我,如果它应该更大 - 不记得长度本身只是VARCHAR允许格式化的灵活性。

如果使用VARCHAR2,我看不到查看最小大小的重点。假设字段最大化,对物理模型的关注围绕着数据库将随着时间消耗多少空间。

评论块:

最大VARCHAR2(4000)

答案 1 :(得分:1)

EDIFACT通常使用35作为Name字段的大小,我将其复制(并将其作为基础进行记录)。较新的东西往往在XML中定义,通常不会进入字段长度定义。

或者,加拿大邮局recommends每个地址行不超过40个字符。

注意,这是字符而不是字节。调整大小应考虑多字节字符,但显然并非所有名称都是最大长度。我已经使用每个名称十个字符作为评估估算的广泛近似值,但在国家,种族等方面可能会有很大差异。

答案 2 :(得分:1)

什么是用于存储货币的推荐数据类型

这取决于什么类型的货币,以及准确程度。

如果它是美分和美元,四舍五入到最接近的分数,那么NUMBER(12,2)允许您存储-999,999,999,999.99999,999,999,999.99之间的金额 - 这对于大多数货币应该足够了。

如果您需要存储利率计算的中间结果,则可能需要更高的精度,例如: NUMBER(15,5)

如果你在谈津巴布韦元,也许你应该选择最大NUMBER代替:)

存储电话号码(国际)的建议尺寸

VARCHAR2(30)就足够了。如果时间太长,您的用户将在那里输入各种垃圾数据。

建议使用名字/姓氏的最小尺寸/ 建议存储评论块的最小尺寸

这些不适用,因为您在Oracle中 - 使用VARCHAR2,因此您不必担心最小大小。您需要指定的是最大尺寸。

答案 3 :(得分:1)

我知道您要求评论块的最小大小,但对于大型自由文本区域,您应该考虑使用CLOB值。 Oracle非常聪明地处理这些事情,如何存储数据等等。您永远不必担心大小。此外,您通常可以假装它们是VARCHAR2列,以便于操作。