のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,062,897人
昨日:no data人
今日:
最近の注目
人気の最安値情報

    私的良スレ書庫

    不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
    ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

    元スレ【PHP】フレームワークについて語るスレ10【総合】

    php スレッド一覧へ / php とは? / 携帯版 / dat(gz)で取得 / トップメニュー
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    レスフィルター : (試験中)
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    601 : nobodyさん - 2008/11/15(土) 17:52:20 ID:??? (-1,-29,-43)
    int型にして、0だと削除扱いにするのが妥当だろうな。PHPやPerlなら、ブーリアン評価でfalseが帰ってくるし。
    602 : nobodyさん - 2008/11/15(土) 17:55:22 ID:??? (+6,-25,-2)
    勝手に値はいるのはtimestampだけだっけ?
    603 : nobodyさん - 2008/11/15(土) 18:02:15 ID:??? (-1,-29,-17)
    >>602
    NOT NULL にしておいて default を設定すれば入るだろ
    604 : nobodyさん - 2008/11/15(土) 18:49:10 ID:??? (-1,-29,-19)
    mysqlはデフォルト値に関数が使えない
    605 : nobodyさん - 2008/11/15(土) 18:51:03 ID:??? (+14,-15,-12)
    >>600
    deletedってどういうこと?
    606 : nobodyさん - 2008/11/15(土) 19:09:25 ID:??? (+44,+21,+0)
    フィールド名じゃないの?
    607 : nobodyさん - 2008/11/15(土) 19:12:51 ID:??? (+62,+28,-1)
    ああそういうことか、関数かと思ったw
    608 : nobodyさん - 2008/11/15(土) 19:13:24 ID:??? (+43,+11,-16)
    nullだとインデックスが使われないから論理値のほうが良くない?
    609 : nobodyさん - 2008/11/15(土) 19:27:12 ID:??? (+57,+29,-27)
    nullかどうかで求めるのは本来正しく無いだろうね
    削除された、と言う状態がシステム上にありうるならそれはnullで表現すべきじゃない
    610 : nobodyさん - 2008/11/15(土) 19:54:48 ID:??? (+62,+29,-87)
    というか、3値論理っての? NULL を理解していないとか必要性を感じないとかの場合は、
    全フィールド NOT NULL で作ってしまえと言いたい。
    その方が何かとトラブルが少ないし、コーディングも楽だ。
    テキストフィールド? 空文字でも入れとけ。 数値? 0が初期値だ。それで都合がわるけりゃ、
    -999999999 が初期値だ、文句あるか、ってな感じで。
    611 : nobodyさん - 2008/11/15(土) 22:00:11 ID:??? (+3,-29,-8)
    >>608
    MySQLならenum型でnullを使う分にはNULLでインデックスされると思うよ
    他のDBでは知らない
    612 : nobodyさん - 2008/11/15(土) 23:07:45 ID:??? (+92,-30,-111)
    >>607
    そう、カラム名。
    id, created(datetime), updated(datetime), deleted(datime)を標準的に使用。

    あるいは、statusとしてa)Activei)/Inactive、h)Hidden, b)Obsoleted D)deleted
    とか詳しい状態が必要な時に使うとか。
    613 : 595 - 2008/11/15(土) 23:12:27 ID:??? (+57,+29,-29)
    いろいろやり方あるんすね。すごい勉強になった。
    皆さん有り難うございます。
    614 : nobodyさん - 2008/11/15(土) 23:21:42 ID:??? (+98,+30,-70)
    論理だろうがなんだろうが、削除っていうからカッチリ噛み合わないと思うんだよね
    実際問題何も消してないわけなんだし
    だから、そういうのは無効化とか不活性化とか利用不可とか、そういう「状態」で呼ぶべきで
    削除って言うならならきっちりかっちりまるっと全部消してしまえ!

    と思うんだよなー
    スレ趣旨と全然関係ないんだけどなー
    615 : nobodyさん - 2008/11/15(土) 23:47:46 ID:??? (+40,-29,-22)
    >>612
    頭文字使うぐらいなら、enum型かSET型じゃね?
    まぁ、DB実装によって違うかもしれんけど。
    616 : nobodyさん - 2008/11/16(日) 02:05:02 ID:??? (+72,+29,-60)
    論理削除はDELETEより早い速度が求められる場合(index更新のコストが馬鹿にならない)とか
    警察照会とか、CS対応で必要とかやっぱり要るシーンが多くて>>614みたいに消してしまえーが使えない場合も少なくないよ

    >>615
    そうだね。
    617 : nobodyさん - 2008/11/16(日) 02:08:47 ID:??? (+57,+29,-38)
    論理削除っていう呼び方はおかしいね
    ソフトウェアなんだから全て論理だし
    無効化、凍結、と言う呼び方が正しい
    618 : nobodyさん - 2008/11/16(日) 02:19:28 ID:??? (+3,-29,-33)
    そうかな?英文でもphysical delete、logical deleteって言葉よく使われるよ。
    http://publib.boulder.ibm.com/infocenter/wbihelp/v6rxmx/index.jsp?topic=/com.ibm.wbia_developer.doc/doc/connector_dev_java/java61.htm
    619 : nobodyさん - 2008/11/16(日) 03:13:45 ID:??? (+57,+29,-15)
    処理速度の場合もあるだろうけど、後から参照しないといけない場面がよくあるからな。安易に削除するわけにはいかないことが多い。
    620 : nobodyさん - 2008/11/16(日) 06:39:55 ID:??? (+57,+29,-5)
    だからそれを削除って呼ぶなよバーヤ!!って言いたいんだろう
    621 : nobodyさん - 2008/11/16(日) 06:56:48 ID:??? (+62,+29,-77)
    論理削除を削除と呼ぶか、単なるステータスかというのは
    呼び方の慣習の問題。

    言葉遊びをやってもしょうがないんで、ここでは便宜的に、論理削除とは、
    物理的には削除せずにサービス上削除されたようにふるまわせること
    でいいかな?
    622 : nobodyさん - 2008/11/16(日) 09:11:01 ID:??? (+99,+29,-54)
    >>600 >>612
    滔々と語ってるが、>>612の前者のdeleted (削除日時) はまあともかく、
    後者の方では、レコードにユニーク制約のカラムがあった時に不便だろ。

    削除フラグ(というかカウンタなど)とセットでユニーク制約にしてしまうって
    のは、あんまり流行って無いのか?
    623 : nobodyさん - 2008/11/16(日) 12:27:21 ID:??? (-1,-29,-2)
    partial index 使っちゃう。
    624 : nobodyさん - 2008/11/16(日) 12:33:30 ID:??? (+91,+18,+1)
    >>622
    詳しく
    625 : nobodyさん - 2008/11/16(日) 13:00:36 ID:??? (+109,+29,-255)
    >>624
    例えばユーザアカウントをユニークにしたいとかで、一意制約をユーザ名カラムに付けるとする。
    んで、そのユーザが退会した後、そのデータを残してたら、そのユーザ名がずっと使えない。
    それを避けるために、削除データだけ一意制約から考慮外にしたい場合、削除フラグと2カラム連結で
    ユニークにしてしまう。
    んでレコードを削除する時に、同一なユーザ名を持つデータの削除フラグを、一斉に +1 UPDATEしてしまう。
    削除フラグが 1以上なら( というか、0でなければ ) 削除データという扱い。
    こんなやり方。マイナーなのかな?と思った。

    書いてて思ったが、これ一意制約のカラムが二つ以上あった場合、そのままでは使えないなw
    もちょっと応用を利かさないと無理か。
    整数部分と少数部分で分けるとか桁で分けるとかビットで分けるとかwww

    # DBの一意制約を使わずアプリで常にチェックするなら別にこんなことしなくていいんだけど。
    626 : nobodyさん - 2008/11/16(日) 13:06:04 ID:??? (+58,+30,-32)
    こんな風にやりたいのなら、削除フラグ自体もユニークにして削除日時を
    マイクロ秒まで入れておけばいいのではと後から思ったのは内緒だ。
    627 : nobodyさん - 2008/11/16(日) 13:24:25 ID:??? (+57,+29,-33)
    って書いて、削除フラグをユニークにしたらそもそも「未削除」の状態はどうするんだと気づいた午後。
    飲みながらレスするもんじゃないな。
    退散します。
    628 : nobodyさん - 2008/11/16(日) 13:45:33 ID:??? (+72,+29,-12)
    >>625
    その例だと使えなくするケースが多いのでむしろ好都合。たいていサポートチームが要望してくる。
    629 : nobodyさん - 2008/11/16(日) 13:51:02 ID:??? (+96,+29,-67)
    酔っ払いめ!ww

    さて、ユーザーアカウントを例にすると、ちょっと怖すぎるんだが、
    CMSなんかのアイテム管理だと、リビジョン管理に同一itemidで
    複数のインスタンス、しかも最新以外は非アクティブっていう状態を
    表現するという用途があったりする。
    その場合、削除フラグを使わずに、使用目的に合わせたタグを振る。
    外部キー側もタグやリビジョン番号を考慮した設計にしないといかんわけだけどね。
    630 : nobodyさん - 2008/11/16(日) 14:12:40 ID:??? (+70,+29,-38)
    >>629
    そういうのの設計はちょっと知りたいなーと思っていたんだけど、
    MediaWikiのソースでも読めばいいのかな?
    631 : nobodyさん - 2008/11/16(日) 14:19:46 ID:??? (-1,-29,-32)
    PACの解説記事でDrupalが良い実装とか見たことあるので同じCMSならこっちは?
    リビジョンと直接は関係ないけどソースはしっかりしてるかも
    632 : nobodyさん - 2008/11/16(日) 14:26:24 ID:??? (+52,+29,-1)
    設計見るのになぜソースを読む
    633 : nobodyさん - 2008/11/16(日) 14:43:16 ID:??? (+10,-22,-12)
    オープンソースソフトウェアの設計書なんて公開されてる?
    634 : nobodyさん - 2008/11/16(日) 15:05:16 ID:??? (+114,+29,-139)
    おそれすになったな・・・

    >>587
    > インプット・アウトプットの対象の幅広さは、ウェブアプリなんかとは比べものにならんように思う。
    > ウェブアプリの場合は、一部APIサービス的なものを除けば、ほぼ「画面」相手でいいわけだが。

    それをいったら、ウェブじゃないアプリだって、ほぼ画面(ディスプレイ)相手だろ?
    なんか比較している対象がずれてるよ。

    画面じゃなくてOffice系の大規模アプリだって、結局は画面にGUI表示してファイルに書き込むだけなんだし。
    ゲームだってそう。ハードウェアデバイスを扱うものもあるだろうけど、それをウェブアプリでやってはだめってことはない。
    ブラウザでコーヒー沸かす装置とかw
    635 : nobodyさん - 2008/11/16(日) 15:05:49 ID:??? (+0,-29,+0)
    >>633
    設計書 = ソースコード
    636 : nobodyさん - 2008/11/16(日) 15:33:36 ID:??? (+83,+30,-148)
    >>634
    元のレスが、アプリとは書いてなくて、「ウェブじゃないシステム」って書いてあるからじゃね?
    対象がずれてるというか、「Office系の大規模アプリ」とかゲームとかが念頭にあるのは
    わかっててわざと書いてるんだろw
    車のエンジン制御とか、通信インフラ系とかはシステムじゃねーの?って。

    >>585
    > それにウェブじゃないシステムが何をしているかというと、
    > 結局、ファイルにデータ読み書きして、画面に点を表示しているだけともいえる。

    いえねーよw
    これがむしろ、言いたいことと表現がずれてるんじゃね?
    637 : nobodyさん - 2008/11/16(日) 17:24:18 ID:+7h73lOI (+26,+28,-15)
    タグの実装を考えています
    スペース区切りでtextカラムに入れて、全文検索するのがシンプルでいいかと思ったのですが、
    他にいい方法があったら教えてください
    638 : nobodyさん - 2008/11/16(日) 17:26:45 ID:??? (-1,-29,-6)
    >スペース区切りでtextカラムに入れて、全文検索
    これはひどい
    639 : nobodyさん - 2008/11/16(日) 17:28:47 ID:+7h73lOI (+64,+29,-8)
    そうですか?ググっていたら同じようなことしてる人もいますが。
    http://blog.nomadscafe.jp/archives/000643.html
    他にいい方法があれば教えてください。
    640 : nobodyさん - 2008/11/16(日) 17:43:46 ID:??? (+54,+26,-4)
    タグ単位で編集とかしないならいいんじゃない?
    641 : nobodyさん - 2008/11/16(日) 17:44:48 ID:??? (+57,+29,-34)
    普通に考えれば
    タグテーブル作って
    アイテムテーブルとの間に多対多のリレーションテーブル持てばいいだけだよね
    いかにもリレーショナルに解決出来るケースだと思うけど
    642 : nobodyさん - 2008/11/16(日) 17:45:10 ID:??? (+71,+29,-72)
    >>639
    それ、フレームワーク関係ないし、それ以前にPHPの問題でもないよ。
    DBの問題だからDB関連スレで質問しろよ。
    まぁ、正規化すら理解してないみたいだからまずは本でも買って勉強することをオススメするけどね
    643 : nobodyさん - 2008/11/16(日) 17:52:11 ID:??? (+52,+29,-2)
    だね
    基礎知識が足りてなさそう
    644 : nobodyさん - 2008/11/16(日) 17:59:55 ID:??? (+57,+29,-2)
    なるほど、おっしゃる通りですね。
    ありがとうございました。
    645 : nobodyさん - 2008/11/16(日) 18:01:45 ID:??? (+62,+29,-100)
    俺はついこの間タグテーブルと、タグと記事のリレーションテーブルで作った。
    けど、割とありきたりの機能になったのに、
    情報が少なくてベストプラクティスな設計が出来たか不安なんだよね。
    タグはパターンとしてどっかに情報がまとまっててもいいと思うんだが。
    646 : nobodyさん - 2008/11/16(日) 18:10:11 ID:??? (+57,+29,-37)
    だから典型的なリレーショナルな設計でいいでしょ
    それ以外に特別な事なんて無いんだから
    647 : nobodyさん - 2008/11/16(日) 18:20:02 ID:??? (+57,+29,-10)
    うん基本的すぎてまとめる気が起きない
    不安ってのはRDBの理解が不十分なのかと。
    648 : nobodyさん - 2008/11/16(日) 18:26:03 ID:??? (+32,+9,-12)
    フレームワークの話題が無いのか
    649 : nobodyさん - 2008/11/16(日) 19:46:05 ID:??? (-1,-29,-16)
    symfony使ってるんだけどRoRと比べてモデル周りが貧弱で泣いた
    650 : nobodyさん - 2008/11/16(日) 20:18:46 ID:??? (+0,-28,-33)
    PHPの場合、標準的なDBドライバがないからな。どれも中途半端。
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / php スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

    類似してるかもしれないスレッド


    トップメニューへ / →のくす牧場書庫について