web-dev-qa-db-ja.com

他のケースの既に保存されているケースプロパティに対する一意のケースプロパティのチェック(IDの保存)

登録フォームに入力されたフィールドが一意のID(IE市区町村と地区のID、生年月日、姓と名の最初の2桁など)を作成して保存されるワークフローでは、保存されたものを確認する方法があります同じIDを作成していないことを確認するために、他のケースの他の既存のIDに対してIDケースプロパティを設定しますか?

1
Merv

積極的にチェックする方法はないと思います(特にオフライン機能がある場合)。

私が考えることができる最高の設計ソリューションは次のとおりです。

  1. ドメインは、利用可能なケースとしてユーザーの標準プランに含まれている必要があります
  2. 各モバイルワーカーのカスタムユーザーデータ番号を追加します(例:モバイルユーザー1 = 01、モバイルユーザー2 = 02)
  3. 各モバイルワーカーによって登録されたケースごとに増分するカウンターを追加します
  4. ケースの各UIDにカスタムユーザーデータ+カウンター番号を追加します(たとえば、モバイルユーザー1によって登録された最初のケ​​ースは011 =ユーザーケースプロパティ+カウンター番号になります)
3
Claire C

ベンとクレアが説明する方法は、おそらく最も安全です。ただし、異なる電話で同じユーザー名を使用している2人のユーザーには制限があります(同じカウンターを更新するため)。

現在モバイルワーカーの電話上にあるの場合、xpathステートメントを使用してidが既に存在するかどうかを積極的に確認できます。

count(instance('casedb')/casedb/case[your_id_property = /data/id_entered] > 0)

これにより、現在その電話番号にそのIDのケースがあるかどうかがわかります。しかし、閉じられたケースや他者が所有するケースを見逃すでしょう。そのため、欠点もあります。

0
Nick Nestle