如何有效地为 sql 中的数据类型分配大小?

Posted

技术标签:

【中文标题】如何有效地为 sql 中的数据类型分配大小?【英文标题】:How to effectively assign sizes to datatypes in sql? 【发布时间】:2016-07-07 13:08:25 【问题描述】:

我正在PostgreSQL 中设计一个Employee 架构,我对数据类型的大小几乎没有疑问。例如,在country 列的Address 表中,我给出了 48 记住完整形式的苏联,这样可以吗?对于pin code 10 可以,还是我必须给 8?

同样,对于像company idemployee id 这样的列,我可以给Big intInt 吗?

另外,我可以将small int 用于project members 列,因为数量可能不大?

Small Int 数据类型在哪里实际使用?

【问题讨论】:

【参考方案1】:

您需要做一些data profiling 来回答这些问题。如果不与业务部门交谈并查看数据,就很难回答这些问题。 data profiling 任务的输出之一是关于数据类型、长度、空值出现以及其他信息的建议。当然,这将取决于您的样本数据。 Company idemployee id 将取决于它们是否是业务密钥的自动递增数字。 Small Int 顾名思义,当您不希望该字段有太多不同或较大的值时使用数据类型 - 一个示例将是参考/查找表的标识字段(例如 GenderID = 1 Gender = '男',GenderID = 2 表示Gender = '女',GenderID = 3 表示Gender = '其他')。

【讨论】:

感谢您的回复,我了解了新词'data profiling'并理解了实际​​使用'small int'的时候。 请注意,在 Postgres 中,您还可以将 ENUM 用于性别字段等内容。另外,我建议您的字段名称全部小写且没有空格;这样你就不必引用它们了。当谈到在 varchar 上指定长度时,除了作为一种安全措施(只是为了确保如果应用程序做了一些愚蠢的事情时,您的字段中不会有 1GB ),我并不是很喜欢。如果你真的很在意这样的东西,你还应该确保没有前导或尾随空格,可能还有其他东西。

以上是关于如何有效地为 sql 中的数据类型分配大小?的主要内容,如果未能解决你的问题,请参考以下文章

如何有效地为列表列表中的多个补丁设置动画

您如何有效地为数据库中的继承建模?

如何有效地为 Java 中的单链表节点实现 hashCode()?

如何从 SQL Server 2014 中的 Select 查询中将数据分配给用户定义的表类型

Oracle 将啥 SQL 数据类型分配给“count(*)”?

如何在 PostgreSQL 9.5 中为“int”数据类型设置大小限制