2018-08-12

anond:20180812145639

んじゃ、以下のテーブルがあると仮定して、どの言語のどのORMでもいいか仮想コード書いてみ。

CREATE TABLE M_ITEM( /*アイテムマスタ*/

ID INTEGER UNIQUE,

NAME STRING,

PRICE INTEGER

);

CREATE TABLE T_STOCK(/*在庫*/

ITEM_ID INTEGER UNIQUE,

STOCK_COUNT INTEGER

);

必要要件は「PRICEが0のものグループA、PRICEが50未満のものグループB,PRICEが100以上のものグループC、それ以外をグループDとした上で

それぞれのグループ内で在庫数が多いものトップ10を取得するクエリな。

SQLでやるとクッソ簡単だぞ。ORMだとどうだ?

さあやってみろ。

  • どうでもいいけどマスタやトランザクションにM_だのT_だの接頭辞付けるの習慣あるとこ多いけど見づらいってずっと思ってる 後ろに付けるんじゃ駄目だったんだろうか

    • えぇ…? 頭につけないとソートされないじゃん…

      • マスタとかトランザクションの括りでソートしたい気持ちがわからない

        • テーブル名を覚えてなくても探しやすくない? 社員マスタなら、Mと打ってからM_syainなりM_userを見つければいいし

          • そこそこ大きいシステムだとM_とかじゃ全然絞り込めなくない? どのみちsyainかuserかなって当たりがついてるならそっちで絞り込んだほうが早いと思う

  • 返答がなかったからpgmodelerのビルドやりながらだけど、 CREATE TABLE M_ITEM( /*アイテムマスタ*/ ID INTEGER UNIQUE, NAME STRING, PRICE INTEGER, group_id integer);CREATE TABLE groups ( id INT AUTO_INCREMENT NOT NULL PRIM...

  • 話がずれるけど、 SQLの方がちゃっちゃと終わらせられる、というのはよく分かる。 ただ、MVCを否定したいなら、そうすればいい。 モデルがあるから、ORMのようなものでモデル間のERを表...

  • 半年ぶりにMac SieraでMySQL立ち上げたら、 ERROR! The server quit without updating PID file (/usr/local/var/mysql/********.local.pid). で立ち上がらないわ、@8とかわけわからんのにされるわ、とりあえず、使い...

  • select-- PRICEが0のものをグループAgroup_concat(distinct case when M_ITEM.price = 0 then concat(M_ITEM.name, ' ', M_ITEM.price, ' ', T_STOCK.stock_count) end order by T_STOCK.stock_count desc) as A,-- PRICEが50未満のもの...

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん