私のデータベースでは長い乱数を主キーとして使用したいと考えています。私はmysqlとdoctrine2を使用しています。ランダムIDを取得する方法
これを巧妙な方法で行うにはどうすればよいですか? mysqlストアドファンクションを作成していますか、またはモデル関数を作成する必要がありますか?
私はIDがユニークである必要があるため、データベースに近いところで作業する方が良いと思っていたので、mysqlがうまくいくと思いました。どう思いますか?
私のデータベースでは長い乱数を主キーとして使用したいと考えています。私はmysqlとdoctrine2を使用しています。ランダムIDを取得する方法
これを巧妙な方法で行うにはどうすればよいですか? mysqlストアドファンクションを作成していますか、またはモデル関数を作成する必要がありますか?
私はIDがユニークである必要があるため、データベースに近いところで作業する方が良いと思っていたので、mysqlがうまくいくと思いました。どう思いますか?
UUID()を使用してください。
UUIDは良いアイデアですが、私の見た目が好きではありません;)私はMarc Bの提案と一緒に、パブリックIDをseperatlyでハッシュ関数で生成すると思います。それでも、UUID()は役に立ちます。 sha1(UUID()+ primary_id)のようなもの – PiTheNumber
mySQLはUUIDを文字列として、またはByte [16]として内部的に格納しますか?私がUUIDを使うのはちょっと不思議ですが、私はPostgresの人間です。 –
私はmysqlユーザーではありませんが、LONG番号のストレスを追加する理由は私には興味があります。
私の周りを検索し、mysqlデータベースの一意のIDフィールドとしてこれを見つけた:あなたは考えがあり
ALTER TABLE table_name ADD COLUMN id INTEGER AUTO_INCREMENT UNIQUE KEY;
自動インクリメントされたIDの問題は、それらを推測できることです。それは、Facebookのような大きなページがすべてのオブジェクトに対してランダムなIDを使用している理由です。 – PiTheNumber
:新しいテーブルの
:既存のテーブルのための
GUIDを使用していますか? –
通常のauto_incrementing IDの使用を検討し、mysqlでいくつかのパディング/ソルトと 'aes_encrypt()'を使用して、ランダムなルッキングキーを生成してください。エースのバージョンはガベージのように見えますが、必要に応じてオリジナルの簡単な数字キーに簡単に戻すことができます。 –
私の質問への答えが何であるかわからないので、私はちょうどポイントを広げています。あなたはどこでも役に立つ。私の質問はそうではなかったようです。 – PiTheNumber