X



【PHP】Laravel【フレームワーク】 Part.6

■ このスレッドは過去ログ倉庫に格納されています
1nobodyさん
垢版 |
2021/05/25(火) 20:01:01.50ID:E8rm8mmq
Laravel
ウェブ職人のためのPHPフレームワーク

本家
https://laravel.com/

git
https://github.com/laravel

動画チュートリアル(英語)
https://laracasts.com/

和訳ドキュメント
http://laravel.jp/


※前スレ
【PHP】Laravel【フレームワーク】 Part.5
https://medaka.5ch.net/test/read.cgi/php/1618535648/
734nobodyさん
垢版 |
2021/06/20(日) 16:20:43.33ID:???
>>733
読み返してみたのですが

> コントローラではない所で更新

この表現は適切じゃなかったですね

> 独立した処理として更新

が適切かもしれません
735nobodyさん
垢版 |
2021/06/20(日) 17:43:02.03ID:???
N+1問題、Laravel8の最新バージョンだと回避できるようになってる。N+1になる処理を実行しようとすると例外を発生させられるようになった。
736nobodyさん
垢版 |
2021/06/20(日) 19:14:58.36ID:???
お前ら、マジで何やってんの?
737nobodyさん
垢版 |
2021/06/20(日) 19:20:55.26ID:???
>>735
マジで?それはドキュメントのどこに書いてあるの?
738nobodyさん
垢版 |
2021/06/20(日) 19:34:42.48ID:???
>>737
マニュアルにはないかもしれないけど
この辺じゃないかな?
https://twitter.com/taylorotwell/status/1395087054254526474?s=21
https://github.com/laravel/framework/pull/37363
https://twitter.com/5chan_nel (5ch newer account)
739nobodyさん
垢版 |
2021/06/20(日) 19:46:37.88ID:???
>>737
すでに上で出てるけど、こっちの方が分かりやすいかな。
https://laravel-news.com/disable-eloquent-lazy-loading-during-development
740nobodyさん
垢版 |
2021/06/20(日) 19:47:49.94ID:???
マニュアルだとこれ
https://laravel.com/docs/8.x/eloquent-relationships#preventing-lazy-loading
741nobodyさん
垢版 |
2021/06/20(日) 21:16:40.26ID:???
>>725
速攻論破されて草 >>738-740の内容知らなかったのかな?
742nobodyさん
垢版 |
2021/06/20(日) 21:42:57.75ID:???
俺はまだ論破されていない >>738-740はN+1の回避策を提示しただけであって
FW側で回避できるという証明にはならない
743nobodyさん
垢版 |
2021/06/20(日) 21:52:49.79ID:???
ちょっと言っている意味がわからないです
744nobodyさん
垢版 |
2021/06/20(日) 21:53:07.92ID:???
>>598
いや、別に論破とかどうでも良いんだが。N+1の実装したら例外出て便利になったっていう情報知らないぽいから教えてあげたかっただけ。

あとFW側で回避したいなら、modelのwithプロパティ使っとけば確実だと思うけどね。ただこれ使うと余計なテーブルアクセス増えてしまいがちだから、不要な時はwithoutとかのメソッド入れなきゃダメで、それはそれでだるい。
745nobodyさん
垢版 |
2021/06/21(月) 00:54:44.77ID:???
だからモハメドの話をちゃんと聞けって
Laravel使っててモハメドの話聞いてないとかありえないぞ
https://youtu.be/213aEudaumk
746nobodyさん
垢版 |
2021/06/21(月) 09:50:26.59ID:???
N+1問題とか、何やってんだろうなぁって思ったら
エロなんたらがActiveRecord型だからっつう事か?

アホな事やってんなぁ…。

ActiveRecord型はJOINが表現しずらいから使わんのよね。
無駄な努力をご苦労さん。
747nobodyさん
垢版 |
2021/06/21(月) 10:19:15.52ID:???
近頃のFWはだいたいがActiveRecord型だし、特に無駄な努力なんてしてないけどな?DataMapper型しか使ったことないアンチオートインクリメントおじさんは、いつまでLaravelスレで粘着するのかね?
748nobodyさん
垢版 |
2021/06/21(月) 10:48:42.22ID:???
ActiveRecord型は表現が冗長でミスを誘引しやすい
特に初心者にとっては記述する動機になりづらく成長の阻害要因

JOINで書くよりN+1で書いたほうが表現がスマートなのが問題なんだよ
749nobodyさん
垢版 |
2021/06/21(月) 10:50:58.39ID:???
Laravel以前はCakeしか使ったことないからN+1なんて知らんかったわ
ここ数日初めてこのスレで勉強になった
750nobodyさん
垢版 |
2021/06/21(月) 11:28:23.03ID:???
JOINで書くってDBファサードからjsonメソッド使って書くって事?
生のSQLでjson使って書くって事?
751nobodyさん
垢版 |
2021/06/21(月) 11:30:35.35ID:???
ベテランRailsエンジニアたちがN+1でハマってるのみて何をもがいているのか不明だった
そしたらLaravelでもハマる奴らも続出していたんだな
752nobodyさん
垢版 |
2021/06/21(月) 11:35:51.07ID:???
いや、ベテランはハマらないぞ。さすがに。DBアクセスのロジック書いたら、普通に生成されるSQL確認するから、そこで気づく。
753nobodyさん
垢版 |
2021/06/21(月) 11:37:18.75ID:???
あとjoinガーて言ってる人、雑魚はinner joinとouter joinを使い分けられないという点に気づいていないと思う。
754nobodyさん
垢版 |
2021/06/21(月) 12:33:16.81ID:???
生SQLとかDBの仕組み的なことを知らないとハマるんだろうね
たしかにFWがうまくやってくれるもんだと思ってたらそこまで考えない
SQLを作るための仕組みっていうのを知ってたら中間出力であるSQLはどうなってるのか気になるんだろうけど
意識しなくて済むような仕組みだからね
755nobodyさん
垢版 |
2021/06/21(月) 14:13:34.84ID:???
>>750

DataMapper型でクエリビルディングして書くって事

正直、Railsで失敗してんのに敢えてActiveRecord型を選ぶとか、頭おかしいとしか思えん。
だからプライマリキーはidのオートインクリメントです、
復号プライマリキーは設定できません、みたいなトチ狂った設計になっちゃうんだよ。

10年以上、全く成長しないよな世間の奴らって。
756nobodyさん
垢版 |
2021/06/21(月) 14:14:32.66ID:???
なんだこりゃ? 脳みそ腐ってんじゃね? こいつ

753nobodyさん2021/06/21(月) 11:37:18.75ID:???
あとjoinガーて言ってる人、雑魚はinner joinとouter joinを使い分けられないという点に気づいていないと思う。
757nobodyさん
垢版 |
2021/06/21(月) 14:19:54.78ID:???
いや、お前らがActiveRecord型しか知らないんだろwww
DaoもActiveRecordも同じ『JOINがたマトモに表現出来ません』問題で失敗してんのに、
なんで敢えてActiveRecord型選んじゃうっすか?www

学習しましょうよ、せんぱーいw


747nobodyさん2021/06/21(月) 10:19:15.52ID:???
近頃のFWはだいたいがActiveRecord型だし、特に無駄な努力なんてしてないけどな?DataMapper型しか使ったことないアンチオートインクリメントおじさんは、いつまでLaravelスレで粘着するのかね?
758nobodyさん
垢版 |
2021/06/21(月) 14:21:17.36ID:???
アンチオートインクリメントおじさんが荒ぶってらっしゃる
759nobodyさん
垢版 |
2021/06/21(月) 14:21:18.84ID:???
やべぇ、流石に草生えまくり過ぎて、誤字・誤変換だらけになってるし。
760nobodyさん
垢版 |
2021/06/21(月) 14:27:07.58ID:???
アホはトレードオフって言葉を知らないので、ある側面だけをみてActiveRecordは失敗とか言っちゃうんだよなー。
そういえば前に、ActiveRecord自体知らなくて、1テーブル1モデルなんてありえねーとか言ってた恥ずかしい奴がいたな。
761nobodyさん
垢版 |
2021/06/21(月) 14:32:26.85ID:???
>>760

何言ってんだろうね、このバカは相変わらず。

じゃ、他のORMに比べて、他にどんなメリットがある?
お前、マジでActiveRecordしか知らないんじゃん。
762nobodyさん
垢版 |
2021/06/21(月) 14:33:53.71ID:oQmF9W/n
>>760

ってか、『1テーブル1モデル』って、なんすか?www

もしかして『1テーブル1クラス』の間違いっすか?www
763nobodyさん
垢版 |
2021/06/21(月) 14:35:29.37ID:???
わざわざDataMapper型に触れておいたのにこれだもんなぁ。アンチオートイクリメントおじさんの頭の悪さは相変わらずで。自覚ないからつい人を見下しちゃう癖もそのままかー。可哀想。
764nobodyさん
垢版 |
2021/06/21(月) 14:38:21.20ID:???
前スレ。ブーメラン乙。

>>937

人の話聞いてんのかな? ModelはDBにアクセスする物じゃねぇんだから、
Modelとテーブルが1対1なわけねーーーーーーーだらーーーーーーーーーー!
937nobodyさん2021/05/23(日) 18:01:50.48ID:???
他のテーブルとのjoin操作までModelに入れるのはなんか違う気がするんだけどその辺どうしてるの?
765nobodyさん
垢版 |
2021/06/21(月) 14:42:06.29ID:???
オートインクリメントおじさん、書きっぷりが独特だからすぐわかる
766nobodyさん
垢版 |
2021/06/21(月) 14:51:04.66ID:oQmF9W/n
>>764

何いってんだこのノータリンは…。日本語読めないのか…orz
それを『1テーブル1モデルなんてありえねー』って読むのか、バカって。

「1つのモデルで取り扱うのが1テーブルだけだなんてあり得ない」って書いてあるんだぞ?
なんでテーブルが主語になってんだよ?
脳みそ腐りすぎだろ、かんべんしてくれよ。

というか、937が
「他のテーブルとのjoin操作までModelに入れるのは」
って言ってんだぞ、そっちをつっこめよ。
そのバカ、『Model=DBにアクセスする場所』って思ってるって事だぞ?
なわけねぇだろ。

お前らって、本当にプロのエンジニアなの? 素人だろ?
767nobodyさん
垢版 |
2021/06/21(月) 14:53:50.03ID:???
>>765

はいはい、凄い凄い。

テンプレエンジンが独自Bladeです、の時点で『マジか!?』と思って避けてたけど、
Railsと同じ失敗するとか、2度めの『マジか!?』だな。

ほんと、学習しねぇよなぁ…。
768nobodyさん
垢版 |
2021/06/21(月) 14:55:27.17ID:???
>>763
> わざわざDataMapper型に触れておいたのにこれだもんなぁ。

聞かれた事に答えずに遁走っと。

尋問内容:
じゃ、他のORMに比べて、他にどんなメリットがある?
お前、マジでActiveRecordしか知らないんじゃん。
769nobodyさん
垢版 |
2021/06/21(月) 14:58:40.65ID:???
というか、これが全てだろ。
お前ら、マジで、いつまでおんなじ所ぐるぐる回ってんだよって話。

751nobodyさん2021/06/21(月) 11:30:35.35ID:???
ベテランRailsエンジニアたちがN+1でハマってるのみて何をもがいているのか不明だった
そしたらLaravelでもハマる奴らも続出していたんだな
770nobodyさん
垢版 |
2021/06/21(月) 15:05:20.06ID:???
アンチオートインクリメントおじさん、きっと仕事で誰とも組んでもらえなくて、チーム開発したことも無いんだろうな・・・。
771nobodyさん
垢版 |
2021/06/21(月) 16:01:02.96ID:???
結局、Laravel使うプロジェクトって、
取って出しの簡単な物しか作ってないって事なんだよな。
業務システムみたいに復数テーブルと都合させて〜みたいな処理はやらない。
そういうのしかやった事ない奴がLaravelまんせーしてる。

まぁ、そういう簡単な用途ならいいんじゃねぇの?
772nobodyさん
垢版 |
2021/06/21(月) 16:02:28.23ID:???
もう、呆れ果てて誤変換しまくり。

“複数テーブル突合させて〜”。
773nobodyさん
垢版 |
2021/06/21(月) 16:10:23.74ID:???
別に何のORMが使いやすいとか
DataMapperがとかActiveRecordがどうのとかそういうのは個人の趣味趣向だから好きにしてって思うんだけど
laravelで使う上で色々なライブラリやFW自体がeloquentを使う前提で作られてるのに
それを外してまで他の仕組み導入するメリットってあるのかな?
774nobodyさん
垢版 |
2021/06/21(月) 16:11:57.88ID:???
クエリビルダ知らずにドヤってて、見てるこっちが恥ずかしいわ。
775nobodyさん
垢版 |
2021/06/21(月) 16:23:48.14ID:???
laravelに別のORMを導入した時点でメリットがあるのはプロジェクトじゃなくて、自分になるんじゃない?
その証拠に規模や用途の話が全く出てきてないよね?
全てのプロジェクトに対してのベストプラクティスが一つならどっちがいいなんて議論にならないはずよね
776nobodyさん
垢版 |
2021/06/21(月) 17:43:07.60ID:???
そういうわけでN+1くらい我慢しろ
これが不具合というわけでもないんだし
777nobodyさん
垢版 |
2021/06/21(月) 18:56:49.34ID:k1suUzpe
773と774で言ってる事背反してんのに>>774って頭悪いよなぁ。毎度こんな感じだけど。

クエリビルダ知らんってのもどっから出てきたんだよって話しだし、
あったらなんだよ、それで解決すんのか?、って話しだし、
アホ過ぎて頭痛くなってくる。

こういう馬鹿って、来月あたりにN+1にどっ嵌って頭かかえてそうな馬鹿さがある。
778nobodyさん
垢版 |
2021/06/21(月) 18:59:00.80ID:???
>>775
> その証拠に規模や用途の話が全く出てきてないよね?

どこに? 主語ちゃんと話そうぜ?
779nobodyさん
垢版 |
2021/06/21(月) 19:18:52.39ID:???
>>777
中規模以上のプロジェクトだとeloquent禁止して、クエリビルダで開発してたりする。まぁ、Laravel使わないのにこのスレに居座る構ってちゃんには関係無い話か。
780nobodyさん
垢版 |
2021/06/21(月) 19:39:32.60ID:???
>>779

禁止w

マジで、何やってんのあなた達w
781nobodyさん
垢版 |
2021/06/21(月) 19:46:28.53ID:???
うん?アーキテクチャを決める際にEloquentを使うか、クエリビルダを使うかの意思決定の話だぞ。
チーム開発において、好き勝手な実装を認めるわけには行かないってのは理解できるかい?
お前、アーキテクチャ設計とかチーム内の規約とか作った経験無いでしょ?
782nobodyさん
垢版 |
2021/06/21(月) 20:29:49.29ID:???
えっとさ、併用、出来ないの? 禁止って。
どうしてそうなっちゃう?
783nobodyさん
垢版 |
2021/06/21(月) 20:30:49.94ID:???
> お前、アーキテクチャ設計とかチーム内の規約とか作った経験無いでしょ?

論点ずれまくりだって事くらいは分かろうな?
784nobodyさん
垢版 |
2021/06/21(月) 20:44:58.66ID:???
Laravelを採用するやつらは周りから嫌われていることを知ったほうがいい
わざわざ失敗したActiveRecordが実装されているFWを採用している時点で何も考えていないアホなのが丸わかり
785nobodyさん
垢版 |
2021/06/21(月) 20:49:47.04ID:???
Laravel使ってるやつらって自分が楽するための簡単なツールとかそういう程度のアプリしか実装したことないだろ
実際の業務では複合主キーや複数テーブルなどの操作は当たり前だからな
それらをサポートしていないLaravelのようなFWを業務で使うことはない
786nobodyさん
垢版 |
2021/06/21(月) 20:50:42.90ID:???
Laravelって複合主キーってできないの?
マイグレーションでは複合主キーできるよね
787nobodyさん
垢版 |
2021/06/21(月) 21:00:42.76ID:???
>>783
ズレてるのはお前。そもそもLaravel使ったことないくせに、なぜこのスレに居るんだい?
788nobodyさん
垢版 |
2021/06/21(月) 21:03:35.83ID:???
>>787

おー、恒例の論点ずらしっすか。

じゃ、敢えて乗ってやると、
ちまたの皆さまがまんせーするLaravelとやらが、どれほど成長したのか見て差し上げようと思って覗いてみたら、
『まだそんな事やってたんすか!!!!』という驚きと共に、
まんせーし続ける皆様を観察して正気なのか確かめる為です。

こんな感じで宜しいでしょうか?
789nobodyさん
垢版 |
2021/06/21(月) 21:05:01.93ID:???
>>788
つまり構ってちゃんてことかwww
790nobodyさん
垢版 |
2021/06/21(月) 21:09:46.99ID:???
アプリケーション中心の設計ならEloquent、データベース中心の設計ならクエリビルダ使えるのがLaravelの良いところなんだが、まぁアホには理解できんだろう。
791nobodyさん
垢版 |
2021/06/21(月) 22:48:07.73ID:???
>>790
逆じゃない?アプリ中心ならクエリビルダ、DB中心ならEloquentだと思う
792nobodyさん
垢版 |
2021/06/21(月) 22:54:02.08ID:???
業務ロジックを込めるならSQL一発勝負のほうがシンプル
793nobodyさん
垢版 |
2021/06/21(月) 23:03:02.03ID:???
オートインクリメント君って本当にbigintを枯渇させたのかな?
それともbigint知らないでintでオートインクリメントしてたのかな?
794nobodyさん
垢版 |
2021/06/21(月) 23:07:02.06ID:???
>>791
ActiveRecord採用すると、DBの設計がアプリケーションに引きづられるって昔から指摘されてるよ。構ってちゃんが指摘する通り、複合キーも使えずサロゲートキー前提の実装になるしね。
795nobodyさん
垢版 |
2021/06/21(月) 23:07:51.96ID:???
intでも普通は枯渇しないやろw
多分そいつは何も知らないだけやと思う
796nobodyさん
垢版 |
2021/06/21(月) 23:59:27.35ID:???
intで枯渇したのってTwitterのIDぐらいしか知らないな
797nobodyさん
垢版 |
2021/06/22(火) 00:05:16.92ID:???
そもそもintって何ビットの話なんだよ
798nobodyさん
垢版 |
2021/06/22(火) 00:06:42.85ID:???
intって8ビットだっけ?
799nobodyさん
垢版 |
2021/06/22(火) 00:08:00.84ID:???
intは2バイトだろ・・
800nobodyさん
垢版 |
2021/06/22(火) 00:08:19.28ID:???
ごめん間違えた4バイトです
801nobodyさん
垢版 |
2021/06/22(火) 00:22:13.11ID:???
PHPのintは64bit
約900京まで扱える

世界の人口は78億人
どうやって枯渇したんだ?
802nobodyさん
垢版 |
2021/06/22(火) 01:39:11.62ID:???
>>801
オートインクリメント君はbigint枯渇させてからオートインクリメントは危険と思うようになったらしいですよ
803nobodyさん
垢版 |
2021/06/22(火) 02:50:07.13ID:???
>>790

速攻で否定されるアホw
あなたたち、一体何してるんすか?www
804nobodyさん
垢版 |
2021/06/22(火) 02:52:09.86ID:???
>>797-800

これがLaravelerの実態
805nobodyさん
垢版 |
2021/06/22(火) 02:58:45.33ID:???
1. intで数年で破綻する設計を実際に見た
2. 有限な値をプライマリキーにするのはおかしい

こう言ったのを、

Laravelerは頭がおかしすぎるので足して2で割ってしまい、
『bigintを枯渇させた』という、謎ワードを勝手に作り出して興奮している。

本当に頭悪過ぎ。だから2021年にもなってN+1問題みたいな下等な事でワイワイやっている。
成長というものがかけらも見られない下等な人種の集まり。
806nobodyさん
垢版 |
2021/06/22(火) 03:01:57.73ID:???
あ! 今気づいた!
N+1問題って、『N isennizyuu 1 問題』だったんだ、
ちょーうけるwww
807nobodyさん
垢版 |
2021/06/22(火) 03:10:07.27ID:???
>>790

で? 聞かれた事に答えないからもう一回聞くけど、

それ、併用できないんすか?www
808nobodyさん
垢版 |
2021/06/22(火) 07:00:10.38ID:???
書き方があちこちで違うと新規参画者の習熟時間が増える
809nobodyさん
垢版 |
2021/06/22(火) 07:11:23.47ID:???
>>807
マジでその質問いる?趣味でしか開発したことないの?チーム開発で規約作ったことないの?てか、「なぜ」についてもすでに回答しているよ。日本語読めないのかい?アンチオートインおじさんは。
810nobodyさん
垢版 |
2021/06/22(火) 07:11:47.61ID:???
>>809
オートイン→オートインクリメント
811nobodyさん
垢版 |
2021/06/22(火) 07:40:58.98ID:???
>>797-800

これがLaravelerの実態
812nobodyさん
垢版 |
2021/06/22(火) 07:44:10.94ID:???
PHPのintは64bit(64bit環境かつPHP7以降)
っていう話と、DBのintが何ビットかっていう話がごっちゃになってないか?

あと、有限なキーがダメって話が出てるけど
有限ではないキーなんて存在するんだろうか?

あとDBにはintは実装されてるけど使う人なんていなくて
実際はDECIMAL(NUMERIC)を使うでしょ
813nobodyさん
垢版 |
2021/06/22(火) 08:05:12.78ID:???
>>812
DBでもint使うが?
814nobodyさん
垢版 |
2021/06/22(火) 08:06:41.65ID:???
>>812
補足すると、アンチオートイクリメントおじさんは、オートインクリメントだと有限な値を使うことになるからダメだってアホな主張をしてて、それで、は?bigintなら問題ないでしょて突っ込まれて、そのあと920京はunsignedだからプログラムで読めない!とか言って失笑を買ってた。
815nobodyさん
垢版 |
2021/06/22(火) 08:57:59.61ID:???
>>809

なんか、壊れたレコードみたいになってきたなw

で? 聞かれた事に答えないからもう一回聞くけど、

それ、併用できないんすか?www

答えると、なんか都合悪いんスカ?w
816nobodyさん
垢版 |
2021/06/22(火) 08:59:43.51ID:Sb0vhLl6
>>812
>PHPのintは64bit(64bit環境かつPHP7以降)
>っていう話と、DBのintが何ビットかっていう話がごっちゃになってないか?

うん、お前らがね。

>あとDBにはintは実装されてるけど使う人なんていなくて
>実際はDECIMAL(NUMERIC)を使うでしょ

また、謎の言葉を吐き出したしw
Laravelerって、ここまで頭おかしいんだw
817nobodyさん
垢版 |
2021/06/22(火) 09:04:48.98ID:???
>>815
すでに回答済みって書いてるから、一定の知性がある生物ならログ確認すると思うよ?それともお前にはそういった知性は期待できないので、もう一度回答したレス番を示してあげた方が良いってことかな?
818nobodyさん
垢版 |
2021/06/22(火) 09:06:53.83ID:???
壊れたレコードてのは、禁止する理由説明してもなお「併用したらダメっすか?」て質問し続けるやつのことじゃないか?
819nobodyさん
垢版 |
2021/06/22(火) 09:08:54.63ID:???
>>817
>すでに回答済みって書いてるから

そういう問題じゃないって事すらわからないんだ。
よっぽど自分の頭の中だけで生きてる引きこもりなんだろうな。

で? 聞かれた事に答えないからもう一回聞くけど、

それ、併用できないんすか?www

答えると、なんか都合悪いんスカ?w
820nobodyさん
垢版 |
2021/06/22(火) 09:12:23.03ID:Sb0vhLl6
>>812
>あと、有限なキーがダメって話が出てるけど
>有限ではないキーなんて存在するんだろうか?

これについての返答、SQL書いてるからかなんなのか、ブロックされるな。
あのさ、VARCHAR(8)ですら、ユニーク数、幾つか計算できるか?ほぼ、出来ねぇんじゃねぇか?
821nobodyさん
垢版 |
2021/06/22(火) 09:15:42.88ID:Sb0vhLl6
>>809=817 って、自分の頭の中に組み上げた式から外れた事は一切考えられないロボ君なんだろうな。

『併用できないんすか?』って聞かれてるんだから出来るか出来ないか、答えりゃいいじゃん。

バカだよなぁ…。
822nobodyさん
垢版 |
2021/06/22(火) 09:15:57.31ID:???
>>819
会話にならねぇ。アンチオートイクリメントおじさんとの会話は俺には無理だわ。じゃーな。
823nobodyさん
垢版 |
2021/06/22(火) 09:24:54.83ID:???
・有限か有限ではないか
・必要十分か不足する可能性はあるか

これは別の問題だと思うんだよね

サービスの要件として日本人を対象とした日本語のサービスであれば目安となるのは1億2000万
これをベースに再作成や複数ID、出生率などを勘案していけばいい
日本人を対象とした商用サービスで最大レベルのものといえば電話だと思うけど
電話番号は11桁

つまり、0〜9の値をとる11桁があれば日本人相手のサービスとしては十分なんだ

人類は有限であるからIDは無限である必要はない
おまえらがいきなり子づくりに目覚めて出生率が跳ね上がる見込みもない
システムの寿命、Laravelの寿命を考えると宇宙の歴史規模の余裕を持つ必要もない

つまり、11桁の数を持ち得る手法であれば必要十分なんだ
824nobodyさん
垢版 |
2021/06/22(火) 09:25:58.92ID:???
DBでintを使うってことはおまえら大企業じゃないのか
825nobodyさん
垢版 |
2021/06/22(火) 09:34:27.10ID:???
おぢさん、PDOとmysqli混ぜて使ってそう
826nobodyさん
垢版 |
2021/06/22(火) 09:55:34.70ID:???
シークエンスでオートなnumberingをするようなDBのデファインを使うのは優れた方法の1つ
重複しないことをDBMSが保証してくれる上にパフォーマンスもよい

よく自動採番の欠点として例示されるのがマスタ画面で新規登録する際
登録時に採番した番号を表示できない、表示したらキャンセルした場合に欠番が出るなんて言うけど
エントリー順にnumberingする以上、たとえ手作業でやっても避けられない問題だ

ただ、データベースの常識として余計なデータは不要だという事
主キー足りえる列がすでにあるのにさらにID列を設ける
これはバッドだ
氏名+電話番号で主キーとして足るのであれば新たにID列を増やすのはパフォーマンスを落とすだけの行為でしかない
(ただ実運用上で主キーを見抜くのは並大抵ではない。例示した氏名+電話番号が通用する場面があったとしても特殊な例外だろう)

ID列を追加するという行為は無駄な領域を確保するという事
検索速度に寄与するわけでもない主キーを追加することによってHDDの余計な領域を確保してしまう
またサーチする際のシークエンス速度もその分劣化してしまう

IDなんてせいぜい8バイトかもしれない
8バイトが1億件あったとしても8億バイトだ
RAID6構成だとしてもたった16億バイト分の領域が無駄になるだけだ

しかし、それを詰めてほんの少しのパフォーマンスアップでももくろむのが我々技術者の使命ではないだろうか

最後になったが主キーの例示でまともな例を出せなかったことをお詫びしておく
827nobodyさん
垢版 |
2021/06/22(火) 10:16:29.56ID:???
うちで作ったサービスは普通に連番でIDにしてるが表に出すユーザーIDは別のユニーク文字列を生成してる
連番だとIDで登録順がバレる、予測が簡単だから攻撃されやすいなどのデメリットがある
828nobodyさん
垢版 |
2021/06/22(火) 10:41:14.57ID:???
オートインクリメント君あまりの知識のなさに素人だということがバレちゃったね
829nobodyさん
垢版 |
2021/06/22(火) 10:48:16.11ID:???
>>826
> 最後になったが主キーの例示でまともな例を出せなかったことをお詫びしておく

わろたw
おまえ、これ書きたかっただけだろ
830nobodyさん
垢版 |
2021/06/22(火) 11:11:11.15ID:???
主キーなんかdefault gen_random_uuid()で十分
831nobodyさん
垢版 |
2021/06/22(火) 11:34:16.27ID:???
ナチュラルキー派って逆に時代遅れ
832nobodyさん
垢版 |
2021/06/22(火) 11:58:55.37ID:???
サロゲート使って運用楽したい
そんな理由でも良いじゃない
833nobodyさん
垢版 |
2021/06/22(火) 12:13:12.46ID:???
この前、某イベントで環境を10個作っているやべえ会社がいることに驚いた
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況