我需要定義我的表作爲如何使用sequelize ORM
CREATE TABLE `test` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`o_id` int(11) unsigned NOT NULL,
`m_name` varchar(45) NOT NULL,
`o_name` varchar(45) NOT NULL,
`customer_id` int(11) unsigned NOT NULL,
`client_id` tinyint(4) unsigned DEFAULT '1',
`set_id` tinyint(4) unsigned DEFAULT NULL,
`s1` tinyint(4) unsigned DEFAULT NULL,
`s2` tinyint(4) unsigned DEFAULT NULL,
`s3` tinyint(4) unsigned DEFAULT NULL,
`review` varchar(2045) DEFAULT NULL,
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `br_o_id_idx` (`order_id`),
KEY `br_date_idx` (`created_at`),
KEY `br_on_idx` (`operator_name`),
KEY `br_mn_idx` (`merchant_name`)
)
但我期待在sequelize文檔,它不具備與小int的支持(4)我列定義爲TINYINT其尺寸。
所以它如何真正重要。我只想限制我的值在0-255之間,因爲我的數據庫中有一列是tinyint。不管天氣我是用0填充還是不填 –
這就是我的觀點;整數類型*後的括號中的數字不會這樣做。既然'sequelize'作者沒有提供正確的方法去做你想做的事,你不能這麼做。你可以嘗試使用[sequelize boolean](https://github.com/sequelize/sequelize/blob/master/lib/data-types.js#L377)類型在模式中創建一個'tinyint'字段,但是我想象一下,這會對ORM處理JS類型的方式造成嚴重破壞。 – Will
實際上,考慮'sequelize'如何處理這個問題,如果你說你在sequelize之外創建模式,所以它已經是tinyint了,你可以使用'min'和'max' [驗證](http ://文檔。sequelizejs.com/en/latest/docs/models-definition/#validations)來得到你想要的,並告訴sequelize它是一個整數字段。 – Will