0

Stackoverflowで可能なオプションを読んだ後、私が検討している正確なケースの答えがわかりません...

ケース:mysqlに接続されたテンプレートを自動生成するphpシステムがあります。

システムが機能するためには、生成された各テンプレートに、作成時に一意の6桁の整数が割り当てられている必要があります。ランダマイザーなどをいじる代わりに...

A)データベースに'pageid'という名前のテーブルをint(11)/ unique / autoincrementで開始値100000で作成し、テンプレート作成プロセス中にこのテーブルに挿入を実行してから、' last_insert_id()'を選択して最後の値をプルし、作成時にテンプレートに挿入しますか?(言い換えると、テーブルの唯一の機能は、最後の一意のIDを生成して吐き戻すことです)。

B)もしそうなら、私がこの方法を使用することについて心配すべき問題はありますか?(これは、899,999個のテンプレートしか生成できないという事実を除けば、この場合は問題になりません)。

任意の考えやより良い方法を高く評価しています...

4

1 に答える 1

0
  1. データベースに「pageid」というテーブルを作成し、int(11)/ unique / autoincrementを開始値100000にして、テンプレート作成プロセス中にこのテーブルに挿入を実行してから、「selectlast_insert_id」を実行できますか? ()'最後の値をプルし、作成時にテンプレートに挿入しますか?(言い換えると、テーブルの唯一の機能は、最後の一意のIDを生成して吐き戻すことです)。

    はい:

    CREATE TABLE pages (
      pageid MEDIUMINT(6) NOT NULL AUTO_INCREMENT PRIMARY KEY
    ) AUTO_INCREMENT = 100000;
    

    MEDIUMINT(6)必要なストレージが1バイト少なくINT、ニーズに適した表示幅があるため、私が使用していることに注意してください。

  2. もしそうなら、私がこの方法を使用することについて心配すべき問題はありますか?(これは、899,999個のテンプレートしか生成できないという事実を除けば、この場合は問題になりません)。

    templates代わりに、テーブルにその列をid配置し、新しいレコードが挿入されるたびに自動的に割り当てられるようにすることができます。

于 2012-09-03T23:05:03.557 に答える