[PHP-users 28706] Re: 同時アクセスがあった場合の制御
Shu Sawada
luna @ lunanet.gr.jp
2006年 3月 10日 (金) 18:17:54 JST
さわだです。
本題の前に、お願いです。できればスレッドは切らないで下さい。
他の方が見づらくなると思いますゆえ。
で。
> 実はもう一つ仕様がありまして、会員1つにつき複数のライセンスを保持
> しております。
> なお、ライセンス番号は1からの連番です。
>
> ■会員テーブル レイアウト
> [会員id] [ライセンス] [セッションID] [time]
> ------+---------+---------+----------
> 10 1 a1s2s5i2d3
> 15 1 akeaoal223
> 15 2 jk123k31h1
> 15 3 1k2j3k3k2k
> 15 4 a9isjk3iiu3i
> 15 5 k3ji3i2jijea
>
> この場合、会員idとライセンスがキーになります。
>
> さわだ様の案を改良する場合、キーが2つになった時の処理が思いつきません。。。
単に会員IDとライセンスを組み合わせてuniqueになるという話なら、そうすれば
いいんじゃないでしょうか。
- 自前管理テーブルを作る
会員ID, ランセンス, session_id, timestamp
- ログイン時
- 管理テーブルを会員ID+ライセンスで検索して結果行があったら全てdelete
delete from 管理テーブル where 会員ID and ライセンス;
- sessionを作るときに、管理テーブルにログイン状態をinsert
insert into 管理テーブル ...
- 各ページでの前処理
- session判定
- session_idで管理テーブルを検索
select count(*) from 管理テーブル where session_id = ''
- 管理テーブルに行がなければ弾く
- ここに行が無いのは、ログアウト済みか二重ログインした場合
- ログアウトしたら管理テーブルからdelete
じゃダメなんでしょうか?
僕はまーさんのやっておられる案件のことは判らないので、何が問題なのかが判らないです。
ごめんなさい。
--
Shu Sawada
http://luna.lunanet.gr.jp/
PHP-users メーリングリストの案内