質問

投稿者:yaesu
登録日:2025年10月2日(木)

adminが編集するuserのログインID(ProjectID+LoginID)

■前提 https://knowledge.spirers.jp/question/board/detail?topicid=205 「(ProjectID+LoginID)の組み合わせと「認証フィールド」でログイン」 の続きになります。 既に、利用者がログインフォームに入力する(LoginID)に、(ProjectID)を合成して、内部的に(ProjectID+"_"+LoginID)を使って、ログインすることができています。 ■質問 管理者画面にて、DB「user」の一括登録、個別登録、編集、を行うとき、ログインIDとなる項目「pid_loginid」に格納されるデータが、必ず(ProjectID+"_"+LoginID)の形式になるようにするには、どこで何をすれば保証できますか? ■補足 ・userの登録/編集は、DB「admin」で認証される「管理者」が実施します。 ・user登録時、「admin」DBにある項目「projectid」の値が、DB「user」の項目「project」「projectid」に反映します。この値を合成元の「ProjectID」として使います。 ・登録フォームや更新フォームにて、userのログインIDとして「user1」「user2」と入力すると、 内部的にデータの頭部を確認し、不足なら「ProjectID+"_"」を追加し、 DBには「1_user1」「1_user2」が登録されると、使いやすいと想像します。 (ただし、ProjectID=1の場合) ■DB 「user」 ・pid_loginid テキスト(必須、ユニーク) ・password テキスト ・mail メールアドレス ・name テキスト ・project 参照フィールド(必須) ・projectid テキスト(登録トリガで「project > id」を代入) 「admin」 ・mail メールアドレス(必須、ユニーク) ・password パスワード ・name テキスト ・group 参照フィールド ・groupname テキスト ・projectid テキスト よろしくお願いします。

更新日:2025年10月3日(金)
いいね

    ベストアンサー

  • お問い合わせありがとうございます。 >管理者画面にて、DB「user」の一括登録、個別登録、編集、を行うとき、 >ログインIDとなる項目「pid_loginid」に格納されるデータが、 >必ず(ProjectID+"_"+LoginID)の形式になるようにするには、 >どこで何をすれば保証できますか? 管理者画面というのは、アプリ利用画面でお間違いなかったでしょうか。 DBトリガを使用することで、個別の登録、更新(編集)は保証いただけます。 ■実装イメージ 1.userDBのフィールドへLoginIDフィールドを追加 2.登録と更新のDBトリガにて、「ProjectID+"_"+LoginID」の形式にしたものをpid_loginidへ上書き更新するように設定 pid_loginidへは、任意の値を登録していただいたとしても、「ProjectID+"_"+LoginID」の形式になります。 ■考慮事項 一括登録や一括更新の場合は、DBトリガが発動しません。 ですので、一括で行いたい場合は、excel上でuserDBのレコード(pid_loginidも含む)を作成したのちに、アプリ利用画面からCSVでの一括登録・更新をお願いします。 ご不明点や認識の齟齬がございましたら、お気軽にお申し付けください。 ご確認よろしくお願いします。

    2025年10月3日(金)

コメント

  • お問い合わせありがとうございます。 >管理者画面にて、DB「user」の一括登録、個別登録、編集、を行うとき、 >ログインIDとなる項目「pid_loginid」に格納されるデータが、 >必ず(ProjectID+"_"+LoginID)の形式になるようにするには、 >どこで何をすれば保証できますか? 管理者画面というのは、アプリ利用画面でお間違いなかったでしょうか。 DBトリガを使用することで、個別の登録、更新(編集)は保証いただけます。 ■実装イメージ 1.userDBのフィールドへLoginIDフィールドを追加 2.登録と更新のDBトリガにて、「ProjectID+"_"+LoginID」の形式にしたものをpid_loginidへ上書き更新するように設定 pid_loginidへは、任意の値を登録していただいたとしても、「ProjectID+"_"+LoginID」の形式になります。 ■考慮事項 一括登録や一括更新の場合は、DBトリガが発動しません。 ですので、一括で行いたい場合は、excel上でuserDBのレコード(pid_loginidも含む)を作成したのちに、アプリ利用画面からCSVでの一括登録・更新をお願いします。 ご不明点や認識の齟齬がございましたら、お気軽にお申し付けください。 ご確認よろしくお願いします。

    • いいね
    2025年10月3日(金)
  • yaesu

    ご回答ありがとうございます。 >DBトリガを使用することで、個別の登録、更新(編集)は保証いただけます。 承知しました。当方の心配は杞憂だったようです。 (1)loginid、projectid、pid_loginid、3項目を用意して、 (2)登録トリガ、更新トリガ、両方で、以下を設定すればよいと理解しました。   pid_loginid=「@user.projectid || '_' || @user.loginid」 >管理者画面というのは、アプリ利用画面でお間違いなかったでしょうか。 管理者画面は、アプリ利用画面で安全に運用できれば良いのですが、 現在は、独自にページを作りこむ方向を第一選択肢として考えています。 その場合でも、個別の登録と更新は、DBトリガで解決すると認識しています。 一括登録については、改めます。 ありがとうございました。

    • いいね
    2025年10月3日(金)
  • ご確認いただきましてありがとうございます。 作成していく中でご不明点がございましたら、お気軽にクエスチョンボードをご活用ください。 引き続きよろしくお願いいたします。

    • いいね
    2025年10月3日(金)