More Related Content
PDF
PPTX
PDF
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」 PDF
KEY
PDF
PDF
これからSpringを使う開発者が知っておくべきこと PPTX
What's hot
PPTX
RLSを用いたマルチテナント実装 for Django PDF
使ってみて気づいた AGPL ライセンスの メリット・デメリット ODP
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える PDF
PDF
PDF
PDF
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話 PDF
PDF
ネットワーク ゲームにおけるTCPとUDPの使い分け PDF
PDF
PDF
PPTX
PDF
PDF
PDF
PDF
こんなに使える!今どきのAPIドキュメンテーションツール PPTX
NGINXをBFF (Backend for Frontend)として利用した話 PDF
[JAWS DAYS 2019] Amazon DocumentDB(with MongoDB Compatibility)入門 PDF
入社1年目のプログラミング初心者がSpringを学ぶための手引き Similar to Ormとの付き合い方
PDF
O/R Mapping の話をするよ。ActiveRecord の話をしたかった。 PDF
PDF
PDF
PPTX
Oracle Database Cloud と無料の純正開発ツールで開発効率を改善しよう!(db tech showcase 2016 Oracle セッ... PDF
Integral - New O/R Mapper for Common Lisp PDF
KEY
activerecord-oracle_enhanced-adapterのご紹介 PDF
PDF
ADO.NETとORMとMicro-ORM -dapper dot netを使ってみた PPTX
【修正版】Django + SQLAlchemy: シンプルWay PDF
PlaySQLAlchemyORM2017.key PDF
PPT
S2dao Seminar in tripodworks PDF
リレーショナルデータベースとの上手な付き合い方 long version PDF
RailsエンジニアのためのActive Recordの基礎から学ぶ実践的DB連携 PDF
実はとても面白い...Documentation library PPTX
PDF
PDF
Oracle Cloud Platform - クラクドにおける新たなデータベース開発 More from 豊明 尾古
PPTX
PDF
PDF
PDF
便利なHerokuと active recordの 速度改善tips PDF
ウェブアプリケーションのためのユニバーサルデザインを読んだので共有する PDF
PDF
PDF
Rails templateで開発の初速を上げよう PDF
PDF
PDF
PDF
KEY
KEY
PPTX
KEY
KEY
Webデザイナーのためのandroid用レイアウト講座 KEY
KEY
KEY
Recently uploaded
PDF
Starlink Direct-to-Cell (D2C) 技術の概要と将来の展望 PDF
100年後の知財業界-生成AIスライドアドリブプレゼン イーパテントYouTube配信 PDF
PDF
Reiwa 7 IT Strategist Afternoon I Question-1 3C Analysis PDF
第21回 Gen AI 勉強会「NotebookLMで60ページ超の スライドを作成してみた」 PDF
さくらインターネットの今 法林リージョン:さくらのAIとか GPUとかイベントとか 〜2026年もバク進します!〜 PDF
2025→2026宙畑ゆく年くる年レポート_100社を超える企業アンケート総まとめ!!_企業まとめ_1229_3版 PPTX
PDF
Reiwa 7 IT Strategist Afternoon I Question-1 Ansoff's Growth Vector Ormとの付き合い方
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
1.直感的なデータ検索(ActiveRecord)
user = User.find1 # => idが1のUserを取得する
user = User.find_by email: ‘admin@example.com’ # => メアドでUserを取得
users = User.admin.where(created_at: 1.month.ago..Time.zone.now)
# => 1ヶ月以内に作られた管理者を取得
articles = Article.joins(:user).merge(User.normal).published
.order(updated_at: :desc).limit(10)
# => 一般ユーザーが作った公開中の記事を更新日降順に10件取得
soft_destroyed_comments = Commnet.only_soft_destroyed
# => 論理削除されたコメントを取得
- 15.
- 16.
2. データの整合性チェック
class User< ApplicationRecord
# 必須
validates :name, presence: true
# 必須かつカタカナのみ
validates :kana, presence: true, format: {with: /A[ァ-ー]+z/}
# 必須かつ3〜20文字以内
validates :code_name, presence: true, length: { in: 3..20 }
# 必須かつ一意である
validates :email, presence: true, uniqueness: true
end
user = User.new
user.valid? # => false
- 17.
2. データの整合性チェック
class User< ApplicationRecord
end
class Group < ApplicationRecord
end
class UserGroup < ApplicationRecord
# 1つのグループに1人の人が複数登録されるのを防ぐ
validates :user, presence: true, uniqueness: { scope: group_id }
end
user_group = UserGroup.new(user_id: 1, group_id: 1)
user_group.save # => true
user_group = UserGroup.new(user_id: 1, group_id: 1)
user_group.save # => false
- 18.
6. テスト可能
● データの整合性チェック、本当に正しいものが定義できてる?
●複雑な条件でのみ登録・更新できるパターンの検証は人力では難しい
例1)1人のユーザーが所有できるモンスターの上限は3000。
3001番目が登録されたら…?
例2)メールアドレスの重複登録はできないが、退会済ユーザーの
メールアドレスは再登録できるように。
例3)A,B,Cが登録されてようやくDが登録できる
● データの取得に関しても同様に、正しいデータが取得できてる?
例1)前回のログイン以降に更新されたデータ件数を取得
例2)公開フラグのあるデータのみを取得できているか?
ユニットテストで検証が可能!(RubyならRspecやMinitestなど)
※SQLも取得結果はプログラミング言語側でテスト可能
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.