22/07/31 19:14:04.01 zDbp/OWQ0.net
>>70
Laravelなら自動でその処理をやってくれる
ただし、クエリビルダ使う場合は自分で条件に気を付ける必要があるぞ
74:66
22/07/31 19:42:47.32 3aGOnqYZ0.net
例えば、Rails では単一テーブル継承という機能がある
顧客が自宅と勤務先を持つ場合に、
自宅と勤務先の列は、大体同じものであるため、
自宅と勤務先を、住所という同じテーブルから派生させて、
Railsが裏側で、自宅と勤務先を切り替える機能
自宅 < 住所
勤務先 < 住所
type=自宅とか、type=勤務先などの検索条件を、SQLに入れなくて良い
75:デフォルトの名無しさん
22/07/31 22:04:43.70 v0RslAdr0.net
>>70
削除フラグじゃないけど、俺はそうしてるわ
会員の有効・無効とか、記事の表示・非表示とか。
別テーブルにして有効か調べてから
データ抽出するよりも明らかにパフォーマンスは良い
>>73
WordPressでもその設計だけど、アンチパターンだよな
といいつつ、同じ設計を採用する場合も多々あるけどw
76:デフォルトの名無しさん
22/07/31 22:36:19.31 FuqqV1bj0.net
>>73
コメントの趣旨がわからなかったのですが、どこで単一テーブル継承を使用すると良いということだったのでしょうか?
あとそれはLaravelで実装できるものなのでしょうか?
77:デフォルトの名無しさん
22/07/31 22:39:18.52 FuqqV1bj0.net
>>74
有効・無効/表示・非表示をそれぞれ別テーブルに充てているということでしょうか?
あまり大規模な構築はやっていないので、冗長に思えます。
パフォーマンスに言及されていますが、どの部分(あるいはどの程度)でパフォーマンスに差が出ます?
ぜひ教えて下さい。指標の参考がほしいです
78:66
22/07/31 23:55:57.10 3aGOnqYZ0.net
>>75
Rails にも、単一テーブル継承といって、
フラグをRailsが裏側で、切り替えてくれる機能があるというだけの話
削除フラグとは関係ないけど
79:デフォルトの名無しさん (ワッチョイ 56bb-qaF0)
22/08/01 07:23:42 C2cXNFwd0.net
>>77
> 仕組み自体はそれほど難しいものではないのでRailsでも実装されてそうですけど
こちらに対してのコメントだったのですね
理解できました
*スレチな話題に誘導してしまい申し訳ありませんでした
回答、ありがとうございます
80:デフォルトの名無しさん
22/08/02 20:08:15.57 aTV235290.net
>>78
ソフトデリートのdeleted_atとmailの複合ユニークだとダメですね
DBとしては重複登録できてしまう
>>57 の退会回数とmailの複合ユニークがDBとしては正なんですかね
(0がアクティブってのが嫌なんですよねぇ)
もう少し悩んでみます
81:デフォルトの名無しさん
22/08/02 20:09:11.03 aTV235290.net
ミスw
なぜか78へのコメントにしてしまった
82:デフォルトの名無しさん
22/08/06 14:06:30.02 wAL6zxMSH.net
上でnullはユニークとして扱われるって説明をしているのに、よく分からないの一言で終わってるやつ、一生エンジニアとして半人前のままで終わりそう
83:デフォルトの名無しさん
22/08/06 15:27:57.34 YnMz3t0S0.net
ソフトデリートって論理削除?
そんなのバッドノウハウとして知れ渡っていてもうオワコンだろ、バグの基になるからやめた方がいいぞ
84:デフォルトの名無しさん
22/08/06 15:45:44.43 ZR5VDRAGd.net
>>59
これ見た感じ削除したものを復元する前提で考えるあたりマジでバッドノウハウだな
85:デフォルトの名無しさん
22/08/06 15:53:45.19 ETNC3kr7r.net
ソフトデリートは世界一の堅牢な業務システムでも採用されてるからバッドノウハウじゃねえよ
86:デフォルトの名無しさん
22/08/06 16:38:51.56 wAL6zxMSH.net
>>82
SQLアンチパターンをちゃんと読もうな
どんなものにでもそれが必要なケースは必ずある
問題は、論理削除のように使うことで副作用を生み出してしまう設計を、
他に手段がある中でも思考停止で使ってしまうことにある
87:63
22/08/07 07:03:33.84 njdSVAOC0.net
>>81
そこは理解できました
頂いたコメントのおかげで、deleted_atとmailの複合ユニークを NULLS NOT DISTINCT のオプション設定できればイケそうと判断しましたが、調査調査の結果、MySQLだとダメっぽいのであきらめました。PostgreSQLならイケたかもしれません
理解できなかったのは
> フラグってのはbool型を意味する
> 一般的に論理削除フラグと主キーの組み合わせでユニークチェックする場合、論理削除フラグにはnullを設定する
boolなのにnullをフラグとして利用する前提???
かなり混乱して未だに理解できません
今は判定用のカラムを作る方向を模索しています
URLリンク(yaba-blog.com)
URLリンク(qiita.com)
良い案があればご教示ください
88:56
22/08/07 07:05:42.04 njdSVAOC0.net
>>86
56だわ...なぜ63なんてかいたんだろ...
89:デフォルトの名無しさん (ワッチョイ 71ac-bzAd)
[ここ壊れてます] .net
句点Rubyおじの居場所をこっちにも作ってあげてくださいw
90:デフォルトの名無しさん
22/08/12 15:04:43.19 zVzedFo00.net
まずは連番問題からだな
問題だと思っているのruby爺だけだがw
91:デフォルトの名無しさん
22/08/31 18:10:35.97 FlEWiE9hd.net
PHP9では未定義変数はNGになるんだってな
92:デフォルトの名無しさん
22/08/31 18:22:26.10 Vvk0HldG0.net
今でも未定義変数のまま利用するというケースが無かったし
厳密にエラーになるならそれはそれで良いかと思う
typoとかで分からなかったりする場合もあるだろうから歓迎かと
93:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています