検索

ホームページ  >  に質問  >  本文

MySQL の行の値に基づいて一意の ID を作成する

私は家系図プロジェクト用の Web アプリケーションを作成しています。データベースに追加された各人には、姓の最初の 3 文字 (説明のために「姓文字列」と呼びます) に基づいて、自動インクリメント (00001 からがそれぞれを表します) で一意の ID を持たせたいと考えています。一意の「姓文字列」)。

例 - ある人の姓は「Smith」です。姓の文字列は SMI となり、最初の姓の文字列「SMI」であるため、完全な参照は SMI00001 になります。相手の姓は Black であるため、姓の文字列は BLA になります。また、姓の文字列 BLA を持つ最初の人物であるため、参照は BLA00001 になります。 3 人目の人の姓も Smith です。彼らは SMI 姓文字列を持つ 2 人目の人物であるため、参照番号は SMI00002 になるはずです。

この一意の ID は、データベース内でユーザーを検索し、ユーザー間の関係を作成するためにユーザー URL で使用されます。

この問題を論理的に解決する方法がわかりません。

まだ何も試していません。これは私の想像を超えています!

P粉541796322P粉541796322337日前350

全員に返信(1)返信します

  • P粉225961749

    P粉2259617492023-12-28 00:08:17

    この方法は大まかです。通常は、データベースの自動インクリメント (番号) を使用するか、md5(time().'randomsalt'.$username) などの一意の ID を自動的に生成する必要があります。

    ただし、XXX00000 形式を使用する必要がある場合は、次の関数が必要になります。

      データベースに BLA00001 があるかどうかを確認します
    • 「はい」の場合は、BLA00002 などを確認してください。
    • 「いいえ」の場合は、新しいエントリを作成します
    これはしばらくすると非常に遅くなり、各名前が存在する可能性は最大 99999 回になります。その後、BLA を BL1、BL2 などに変更する必要があります。

    返事
    0
  • キャンセル返事