785 :
NAME IS NULL:
質問です。
Webアプリケーションで、ユーザーがレコードを任意の順番に並び替えることができるようにするには、どのようなスキーマにして、更新時にはどのようにするのがよいでしょうか?
並べ替えの時にプライマリキー以外の全部のフィールドを書き換えるのではちょっとパフォーマンスが悪すぎると思います。
よろしくお願いします。
787 :
785:2006/05/11(木) 16:42:17 ID:???
>>786 レスありがとうございます。
わかりにくくてすみませんorz。
ユーザーがお気に入りのエントリーを作れるようにしています。
普通にエントリーを追加をしていくとauto_incrementさせとけばプライマリキーのidが増えていきますが、後からユーザーが表示する順番を並び替えられるようにしたいのです。
id favorite url
1 今日のお気に入り
http://〜
2 昨日のお気に入り
http://〜
3 明日のお気に入り
http://〜
こんな感じに並んでいるものを、ユーザーが好きな順番で表示させることができるようにしたいです。
(順番を並び替えるためのフォーム用ページも作ります)
やっぱりスレ違いでしょうか?
788 :
784:2006/05/11(木) 16:43:28 ID:???
>>786 有効にする方向には上書きできるけど
無効にする方法がわからないのですにょ
あんまりほいほい/etc/my.cnfをいじりたくないし
無効化手段を知っとけば他にも役に立ちそうだし
>>787 favoriteの項目名に<A href="hoge.htm?order=favorite">のリンク作って、
受信側ページ(hoge.htm:この場合同じページになるかな?)でsqlに「order by favorite」付けれ
790 :
770:2006/05/11(木) 17:07:44 ID:???
>>782 テキストエディタで開いて改行されていない状態なら
改行コードが入っていないと思われる。
入力とDBへの挿入ページでどんな処理をしているのかわからんが
> phpと言うのを使えば改行コードをそのまま保存⇔呼び出しと言うのが
> 出来るのでしょうか?
phpには改行コードを<br>に変換してくる
nl2brという関数が用意されているということ。
javaでそんな関数がないならユーザー関数を作ってください。
791 :
785:2006/05/11(木) 18:30:54 ID:???
>>789 すみません。言葉足らずでした。
やりたいことは、ユーザーが
1 昨日のお気に入り
2 今日のお気に入り
3 明日のお気に入り
とか
1 明日のお気に入り
2 昨日のお気に入り
3 今日のお気に入り
とかいう風に色々な順番に並べ替えられるようにしたいのです。
YOU!ソート用のフィールド作っちゃいなYO!
793 :
785:2006/05/11(木) 18:57:25 ID:???
>>792 なるほど。新たにフィールドを加えるということですね。
そうすると、どのような値を格納しておけばよいのでしょうか?
また、更新するとき(つまりユーザーが何らかの並び替えを行ったとき)にはどのようなSQL文を書けばよいのでしょうか?
おそらく最悪全てのレコードの値を書き換えないといけない気がしてしまいます。
>793
すいません。ユーザーが一発で全てのレコードを書き換えるという
操作をするというのがよく分かりません。
ふつう、インターフェースから一個ずつ順番変えない?
スクリプトでも一個ずつ命令発行しないですか?
795 :
794:2006/05/11(木) 19:37:46 ID:???
あ…、ひょっとしてリスト構造をDBでやりたいって話か。
>>794 エスパーな俺が判断するに
1.xxx
2.yyy
3.zzz
という order から zzzを先頭にもって来た場合、
zzz→1
xxx→2
yyy→3
と変更しないといけないんじゃないかと
>>793 は言っている
エスパー魔美 出現
まったくMySQLに関係ないな。
表示順番のフォールドでも作ればいいじゃんって、データベース設計レベルの話。
blogとかの解析でもすればいいのに。
ヒント:Movable TypeはMySQL使ってる。
フォールドって?