元スレ【PHP】Laravel【フレームワーク】 Part.11
php覧 / PC版 /みんなの評価 :
351 = :
>>347
Railsなら欠番が出たら欠番をDBに保存することができる
次の連番が必要なときはその欠番から埋めていくんだよ
Laravelerなら思いつきもしないロジックだろうが
352 = :
>>331のいう「欠番なしの連番作成」ならロールバック時の影響考えても、
キューやサービスを挟めばできる
>>351
欠番検知の処理もサービス含めればできる
わざわざ前スレから数百レス煽ってまで「出来ない」と強く主張した理由があるはず
>>331はその理由を説明して
353 = :
>>352
文脈的にLaravelで出来ないという訳ではなく
Laravelだと簡単にはできないって言いたいのでは?
354 = :
>>351
おれは釣られてるんだろうか
> 欠番が出たら欠番をDBに保存する
> 欠番から埋めていくんだよ
欠番出来てんじゃん...
355 = :
>>351
「欠番が出たら」
←ここってフレームワークでデフォで処理してるの?ロジック出してみて
・Insertの後処理に毎回SELECTして検証してるってことだよね?パフォーマンス悪くない?
・Rubyは欠番テーブルかなんか勝手に作るの?
・欠番をわざわざDBに保存して毎度そっちもSELECTするんだよね?パフォーマンスry
あとそれならLaravelでも後から実装できるから「Laravelで出来ない」じゃないよね
356 = :
>>354
そうなんだよね
あたかも「欠番が出来ない」仕組みがRubyにあるように主張する、いわば詐欺の手法
357 = :
>>354
行を削除したら欠番できるの当たり前だろ
欠番できないってのは欠番を埋めるから結果的に欠番はできないんだよ
>>355
Laravelだと自動では難しいかもな
Railsなら欠番DBに検索かけてから欠番候補がなければ連番を作るようにできる
358 = :
欠番をできないようにすることはできると思うけどおそらく元の話はそういうことではないと思う。
採番された番号を使用するデータのリクエストが立て続けに2件あった場合に
1件目を採番→100
2件目を採番→101
だとして、1件目でエラーやキャンセルなどがあった場合に2件目のデータは1件目で採番した番号を使わないといけないということじゃないのかな
359 = :
オートインクリメントで採番するのはRailsでもなければLaravelでもない
データベースが採番をする
ロールバックが発生したら欠番が出て二度と使えない
http://qiita.com/jnchito/items/79845b02cc197dee3e7c
360 = :
だからコミット済みの各データに大して振り直しみたいな話が出たんだと思うけど、
振り直しとかありえないので1件目がコミットされるまで2件目を受け付けないようにするしか思いつかない
361 = :
>>357
欠番を埋める前にSELECTしたら、欠番の発生が客にも分かってしまう
これは「欠番できない」を守ってないのでは
Laravelでデフォの機能では備わってないからねえ
Rubyはデフォで、欠番テーブル必須なの?
あとパフォーマンスどうなるの?
362 = :
伝票番号とか管理するシステムの開発経験ないからわからないけど割り当てられた文書番号とかは必ず欠番なしの連番になっているのかえ?
なんか似たようなことで質問している人いたわ
http://www.fm-aid.com/bbs2/viewtopic.php?id=10950
363 = :
>>361
パフォーマンスなんて気にするなよ
テーブルロックすればいいじゃん
ただし複数DBになると連番はむり
364 = :
>>359
それしちゃうと、alter tableが必要になるからねえ
削除もされるテーブルで連番の維持を必須にするのは筋が悪すぎるね
普通はやらないけど、>>331おじは「要件なんだから実装しろ」と前スレから何百レスも主張していた
uuidとかで普通に管理するのが落とし所になると思う
365 = :
>>357
おまえ、それ要件に従ってないじゃんw
僕のスキルだと実装できないから要件を勝手に解釈しましたっていうのか?
366 = :
>>363
削除後(欠番発生後)、Insertが発生する操作があるまで欠番してね?
テーブルA「30,32」欠番テーブル「31」とかでも、次Insertされるまで31を埋めないってことやろ
367 = :
>>366
この世は時間に縛られた世界なんだからそんなこと気にするな
368 = 337 :
結局>>72と大差のない実装がでてきて笑う
それはさておき欠番管理テーブルなんてRailsの標準機能に存在するのか?
あるって言うならまずgithubで該当箇所示してくれよ
369 = :
>>368
欠番再利用なら標準機能にある
欠番テーブルはない
370 = 337 :
>>369
まぁテーブルでもなんでも良いけど
その該当箇所のコード教えてくれない?
Railsが標準でそんな機能用意しているって知らなかったから
後学のために勉強したい
371 = :
>>370
RailsのことはRailsスレでやれよ
372 = 337 :
>>371
え?laravelスレまできて、Railsには欠番埋める機能が標準であるって主張してたんだから
このスレでそのことを証明するのが筋だよね?よろしく
373 = 337 :
>>357では、Railsには欠番DBという謎のDBが存在するといい
さすがにDBは嘘だろうから欠番テーブルと読み替えて問い詰めれば
>>369のように欠番テーブルはなく標準機能にあると主張を変える
どういうこと?
374 = :
>>373
多分各々認識しているバージョンが違うのでは?
欠番テーブルはRails6、Rails7では欠番テーブルを使用しない実装になっている
376 = :
Railsの欠番機能知らないやつ結構いるんだな
その機能が実装されたとき技術系のネットニュースにもなったのに
ただ正直業務アプリでその機能有効化したことはないな
377 = :
>>376
俺もない
そもそも欠番再利用なんて要件は来たことがない
378 = :
ごめん
よく考えたらJAVAの案件では2回ぐらいあったな
379 = :
このスレって、たまに存在しない機能を存在するかのように言って
場を荒らそうとする幼稚な奴がいるんだが
↑の欠番DBガーとか言ってる奴は、アンチオートインクリメントおじさんのふりをした
その荒らしの書き込みって認識でOK?
380 = :
>>379
結局そんな機能はないと認めるのかよ♥
381 = :
>>379
存在するしないとがじゃなくて欠番再利用をLaravelでどう実装するかという話だろ
382 = :
Laravelなら普通に実装すればよくね、ロジックなんて変わらんし
欠番再利用もInsert時に処理挟めば済む話。不可能でもないし難しくもない
>>331はLaravelでは出来ないって言ってるけど、それはまあウソだったってことだけどな
あと前スレからずっと連番連番言ってたやつは
連番必須および欠番不許可という要件の非現実さ、どうでもよさ、不適切さを噛み締めてもろて
しかし連番にこだわるってなんかいかにも日本って感じだと思ったな、なんとなく
383 = :
連番に執拗に拘るシステムとかろくでもないし
絶対開発利益低いだろ
384 = :
ツールを使うことでした物を作れなくなった奴らの末路
385 = :
>>382
それだと欠番発生する気がする
386 = :
Insert時に処理挟むのは駄目💋
それだと複数人からアクセスされてかつ一名が
387 = :
確かにINSERT時にやると複数人同時に登録処理された際に
同じ欠番を再利用してしまいエラーになりそうだな
388 = :
排他ファイルとかで複数人同時に処理しないようにするのは?
389 = :
排他ファイルだと今度はデッドロックになりそう
直接登録するのではなくジョブ登録処理をにまかせるというのは?
391 = :
>>386-388
いやだからキューとかサービス使えって話やろ
392 = :
あとガチで絶対に連番発生させない、なら専用のサーバーなりプロセスなり立てないと、
複数Webサーバー、複数DBに対応できるわけがない
それでも削除したら一時的でも欠番になるDBでストアドとか使う必要がある)。ほんと無為な要件だからな
393 = :
このスレ、アンチパターンの宝庫だなw
まーそもそもビジネスルール起因の要件をはっきりさせないまま実装コメントしてる時点でエンジニア失格なわけだが
394 = :
ツールを使うことでした物を作れなくなった奴らの末路
395 = :
396 = :
>>393
お客さんと直接話をして請負開発してたら欠番の無い連番要件なんてお客さんの要望としてあり得ないよね
397 = :
>>346
欠番を埋めたら、後から保存されたレコードのidが若くなるが、
それは問題ないのか?
>>349
まったくだw
398 = :
常に連番で裁判されるという話だったと思うだけど、
いつの間にか欠番を埋める話になってる気がする
連番オジサン、話題をすり替えた?
○○教会と自民の癒着ネタのすり替えに似ているw
399 = :
裁判
字を間違えてるよ
400 = :
>>392
削除とかロールバックしなきゃいいじゃん専用テーブルにしてそれとデータをJOINする形にすれば
まぁそんなの作った所でなんの役にも立たん糞システムであることは言うまでもないが
みんなの評価 :
類似してるかもしれないスレッド
- 【PHP】Laravel【フレームワーク】 Part.12 (314) - [98%] - 2023/1/30 18:45
- 【PHP】Laravel【フレームワーク】 Part.10 (446) - [98%] - 2022/6/6 19:30
- 【PHP】Laravel【フレームワーク】 Part.9 (884) - [96%] - 2022/3/13 12:00
- 【PHP】Laravel【フレームワーク】 Part.8 (148) - [96%] - 2021/8/8 21:30
- 【PHP】Laravel【フレームワーク】 Part.7 (779) - [96%] - 2021/7/9 16:18
- 【PHP】Laravel【フレームワーク】 Part.6 (745) - [96%] - 2021/6/21 6:30
- 【PHP】Laravel【フレームワーク】 Part.5 (568) - [96%] - 2021/5/1 22:00
- 【PHP】Laravel【フレームワーク】 Part.2 (917) - [94%] - 2019/9/10 9:15
- 【PHP】Laravel【フレームワーク】 Part.3 (983) - [94%] - 2021/2/12 4:00
- 【PHP】Laravel【フレームワーク】 Part.4 (460) - [94%] - 2021/4/4 4:00
- 【PHP】Laravel【フレームワーク】 (887) - [82%] - 2019/4/23 21:00
- 【PHP】フレームワーク Akelos (129) - [54%] - 2019/5/9 7:46
トップメニューへ / →のくす牧場書庫について