2015-03-02 33 views
0

我正在使用Doctrine 2制作一个symfony2项目,我正在使用Annotations将我的实体映射到MySQL数据库。
我已阅读doctrine 2文档,它说长度属性只适用于字符串类型。Doctrine2具有指定长度的整数类型

所以我的问题是,有没有办法通过注释(除了columnDefinition)设置一个整数列的特定长度(所以没有smallint,bigint等......),如果没有...为什么在那里不是吗?在Doctrine 1中,我可以指定整数类型的特定长度

回答

1

因为Doctrine是为使用自己操纵数据而创建的。它不关心这些数据如何被其他程序显示。但是数值的长度定义只是为了方便地在DB管理器中显示数据而存在(主要针对cli mysql客户端)。

在学说中,你也不能因为同样的原因创建触发器。您可以使用原则实施这种触发器。

+0

这不是数据显示,而是数据库设计。我最后一次检查设置字段的长度,当你知道他们将只存储具有一定长度的数据时,最大值有助于优化,而且我并不需要11位数字段来存储我每天的小时数工作。您可以在Doctrine 1中指定字段长度。 – valepu 2015-03-02 17:02:42

+0

您需要阅读更多关于MySQL中的类型。 INTEGER类型始终在数据库中保存为4个字节。如果你需要的少,你可以使用TINYINT(1字节),SMALLINT(2字节),MEDIUMINT(3字节)。 当你在MYSQL中用括号中的参数定义INTEGER字段时,它只是意味着这个整数值将以你指定的大小显示在列中(其余部分将被截断) – 2015-03-02 18:16:40

+0

你确实是对的,我不知道,它确实令人惊讶。谢谢 – valepu 2015-03-03 09:25:59

相关问题