[PHP-users 10706] Re: 完全にユニークな文字列の作成
Naofumi Kondoh
php-users@php.gr.jp
Wed, 09 Oct 2002 17:13:07 +0900
ソフト工房の近藤です。
lavlav@paw.hi-ho.ne.jp wrote:
> みなさんこんばんわ、木田と申します。
>
> 英数字が混雑した完全にユニークな
> 文字列の作成とはどうやるんでしょうか?
『完全』という言葉を、ユーザーの特定システム内で
完全にユニーク、即ち、重複を全く許さないと解釈
するならば、私なら次のようにします。
RDB で、UNIQ な SERIAL NUMBER を取得する。
PostgreSQL なら、SERIAL 型を使用すれば簡単。
数字だけでなく、英数字混じりにしたければ、適当な英字を
前後に追加するとか、数字を英数字に変換するルーチンを作る。
RDB を使いたくなければ、サーバー内の UNIX FILE を使用す
る方法もあります。この場合は、同時更新防止のため、UNIX
のファイルロックが必須。
『完全』ではなく、わずかな重複は許容できるという
のであれば、uniqid()関数を使う。
ユーザーの特定システム内でなく、複数のネット内で完全に
ユニークというのであれば、messageid の生成方法などを参考に、
使用者間で、規定を決めるしかないでしょう。
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
(株)ソフト工房 近藤直文 Email: nkon@shonan.ne.jp
http://www.SOFTKOUBOU.co.jp/ http://www.shonan.ne.jp/~nkon/
2002-10-24(木)19:00-21:30 第7回 JPUG 業務アプリ分科会 勉強会
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/