【问题标题】:Custom id getting overridden in backand?自定义 id 在 backand 中被覆盖?
【发布时间】:2017-09-08 11:32:55
【问题描述】:

我在 id 字段中插入了某些行,并在 id 字段中使用我自己的自定义 id,在检查数据库时,我看到 id 已更改为 backand 自己的 id,从 1、2、3... 开始。我希望保留我的原始 ID,文档没有提到这一点。请帮忙。

回复 Matts 的回答:

我的问题清楚地表明我不想“创建”新 ID,我想保留我发送的原始 ID。在第 n 次浏览 Backand 糟糕的文档后,我看不到这个问题得到解决。我个人觉得很傻,Backand 认为用户提供的 id (通常需要相当繁重的算法,以保持唯一性和随机性不好)和他们超酷的自动增量整数 1,2,3.. 是更好的主键,因此会覆盖客户端 ID。所有支持人员都像鹦鹉一样重复与马特相同的台词,甚至不了解我的具体要求。不,我无法从 backand 创建随机 id,因为相同的 id 被映射到其他系统。请看在上帝的份上,修复您的文档。没有提到它将覆盖 ID。

例如:Firebase 首先检查用户提供的 id,如果存在则不会触及它,如果不存在则创建自己的,但由于自身的限制,我不能使用 firbase,切换到 Mongo 希望这应该会有所帮助。

【问题讨论】:

  • 正如我在下面提到的,它在专门用于用 UUID 替换自动增量 ID 的部分的标注中明确说明。这个完全相同的过程可用于使用您喜欢的任何内容填充 ID。

标签: backand


【解决方案1】:

感谢您使用 Backand。您可以使用我们文档中描述的关于将 UUID 用作对象的主键的技术:http://docs.backand.com/#using-uuid-primary-keys

通过采用这种方法,您可以将 ID 设置为您想要的任何内容。否则,当您使用自动递增整数将它们发送到 API 时,所有 ID 字段都将被覆盖。如果您在创建时的自定义操作中覆盖这些,则可以在创建时绕过此行为。

编辑 - 作为对此的后续,绕过 Backand 自动覆盖数据的一种技术是访问数据库并删除 ID 列,将表中的另一个标记为主键。 Backand 控制名称字段以驱动一些自动完成功能。通过删除 ID 字段并更改主键,或者简单地删除我们对 ID 字段设置的自动约束,您应该能够实现您所需要的。但是,这不可能通过 UI 实现 - 应该通过使用 MySQL Workbench 等工具直接连接到数据库来完成。连接数据库所需的信息可从 Backand App Dashboard 中的 Settings -> Database

获得

另外,关于最初建议的解决方案,请务必注意,我并不是说要盲目地应用它。正如我所提到的,使用所描述的方法 - 创建自定义操作来驱动创建的 ID - 可以适应填充您想要的任何 ID 字段。在示例代码中,您可以从提供 ID 的对象的另一个字段中复制值,而不是生成 GUID,或者真正使用它做任何您想做的事情,而不是生成 GUID。但是,关键是更新基础数据库列以删除自动增量填充并将数据类型更改为正确的值。我已经调整了文档以包含对此的提及。

【讨论】:

    猜你喜欢
    • 2019-02-12
    • 2015-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-02
    • 1970-01-01
    • 1970-01-01
    • 2018-10-18
    相关资源
    最近更新 更多