具有复合主键和特定 VARCHAR 长度的 NodeJS MySQL ORM

Posted

技术标签:

【中文标题】具有复合主键和特定 VARCHAR 长度的 NodeJS MySQL ORM【英文标题】:NodeJS MySQL ORM with composite primary keys and specific VARCHAR lengths 【发布时间】:2012-09-25 20:07:57 【问题描述】:

我一直在寻找适用于 Node.js 的 mysql ORM。我研究了persist.js、sequelize 和node-orm。不幸的是,它们都不支持我需要的两个功能: 1.支持复合主键(大部分只支持“id”字段作为主键) 2. 指定我的 VARCHAR 长度的能力

我有一个使用 VARCHAR(16) 的包含数百万行的表。将其增加到 255 将为数据库增加数百 MB 的浪费空间。该表也将继续增长,进一步造成浪费。

有没有我想念的替代品?

【问题讨论】:

【参考方案1】:

node-orm 现在有一个高级选项。

请看这里:node-rom2/advanced-options,所以我认为您现在可以更改主 ID。 :)

【讨论】:

您现在可以指定您的 VARCHAR 长度,但看起来它们仍然不支持复合主键。它们只是让您指定一个不同的字段作为主键。【参考方案2】:

看一对:mysql 和 light-orm Mysql 具有原生实现 - 快速、轻量级的关系数据库。

【讨论】:

我看到你写了 light-orm。如何在模型上创建复合主键?【参考方案3】:

这里的回答很晚 :) Objection.js 确实支持复合键 (http://vincit.github.io/objection.js/#composite-keys) 并且创建 mysql varchar 列不应该达到 ORM。

【讨论】:

以上是关于具有复合主键和特定 VARCHAR 长度的 NodeJS MySQL ORM的主要内容,如果未能解决你的问题,请参考以下文章

具有主键和外键的事实表

创建具有主键和2个外键的表

复合主键和外键 Code First

使用复合主键和注释映射 ManyToMany:

MySQL 死锁与复合主键和触发自动增量

阿帕奇卡桑德拉。索引或具有复合主键的表的特定情况