在很多情况下,我们有突变,其中存在我们需要变异的一对多或多对多关联,以及将关联作为分页列表暴露给查询的位置.
有一些关键要求:
不太重要:
这个问题有很多可能的解决方案:
输入类型具有单个数组输入字段,表示关联的总真实性(添加新元素,更新现有元素,删除缺少的元素,并在必要时保留顺序).
缺点:删除非常隐含.客户端必须通过关联的整个当前状态进行分页.不精细.
输入类型具有单个数组输入字段,用于更新现有元素并添加新元素(忽略缺少的元素).可以在元素上指定位置或索引值以对其重新排序.单独的突变用于删除元素.
缺点:删除在变异中自行关闭是不一致的,而所有其他操作都在父节点上.不太精细.
输入类型具有单个数组输入字段,用于更新现有元素并添加新元素(忽略缺少的元素).单独的突变用于删除和重新排序元素.
缺点:客户端无法将新元素添加到关联中的特定位置,必须添加它们,然后单独重新排序.不太精细.
与选项3类似,但输入字段仅用于更新; 单独的变异用于添加新元素.
缺点:客户必须进行多次突变才能执行复杂的更新.客户端无法使用初始关联创建父级.
父输入类型没有相关字段,所有内容都通过四个单独的突变完成,用于添加/删除/更新/重新排序.
优点:非常明确和精细,将不同的数据模型对象分开.缺点:客户必须进行多次突变才能执行复杂的更新.客户端无法使用初始关联创建父级.
输入类型有两个数组字段:一个用于更新,添加和重新排序元素(请参阅选项2),另一个用于删除.
缺点:感觉就像我们污染了父母的突变; 不精细.
与选项6类似,除了使用单独的重新排序变异而不是位置参数.
缺点:重新排序自行关闭不一致.另见选项6的缺点.
所有这些选择似乎都有缺点.选项5似乎是最明确的,但要求用户同时使用多个突变,其中操作不再是原子的.
Facebook处理这些类型突变的方式是什么?你的方式是什么?谢谢!
我到处寻找,找不到这个具体问题的答案:(
我有一个字符串日期,其中包含剥去所有特殊字符的日期.(即:yyyymmddhhmm或201212031204).
我正在尝试将此字符串转换为int以便以后能够对它们进行排序.我试过atoi,没用,因为这个函数的值太高了.我尝试过流,但它总是返回-858993460,我怀疑这是因为字符串太大了.我试过atol和环礁,他们仍然没有给出正确的答案.
我宁愿不使用提升,因为这是作业,我不认为我会被允许.
我没有将大字符串转换为int的选项吗?谢谢!
我希望能做什么:
int dateToInt(string date)
{
date = date.substr(6,4) + date.substr(3,2) + date.substr(0,2) + date.substr(11,2) + date.substr(14,2);
int d;
d = atoi(date.c_str());
return d;
}
Run Code Online (Sandbox Code Playgroud)