【问题标题】:Does Realm provide method to get next available generate primary key ( primaryKey )?Realm 是否提供获取下一个可用生成主键(primaryKey)的方法?
【发布时间】:2017-05-20 09:39:19
【问题描述】:

在创建具有主键的对象时,Realm 是否提供了一种方法来获取/创建主键的下一个可用唯一值? (自动递增)

const BookSchema = {
  name: 'Book',
  primaryKey: 'id',
  properties: {
    id:    'int',    // primary key
    title: 'string',
    price: 'float'
  }
};

如果不是,有什么方法可以确保 primaryKey 的值是唯一的?

或者我应该将主键设为 uuid: { type: 'string' } 吗?

使用:

  • 反应原生 0.38.1
    • 安卓
    • iOS
  • 领域 0.15.0

【问题讨论】:

  • 我没有得到你的问题,请更具体
  • 如果您正在谈论主键的自动增量,那么这是不可能的。检查这个先前的答案:stackoverflow.com/questions/40289738/… 所以我猜你最好使用 UUID。
  • 是的,我的意思是自动增量。谢谢!

标签: react-native realm


【解决方案1】:

这很可悲,但确实如此。

对对象使用 uuid 不像可读的 int 那样对开发人员友好。我认为它也会影响性能。 因此,如果您不想这样做,我认为最好的选择是从集合本身获取最大 id:

const getMaxId = (collection) => {
    const maxId = Math.max.apply(null,collection.map((item) => item.id));
    return maxId ? maxId : 1;
};

【讨论】:

    猜你喜欢
    • 2021-09-19
    • 2020-07-12
    • 2013-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-23
    • 1970-01-01
    相关资源
    最近更新 更多