Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Kaigi on Rails 2026 After Event from ピクシブ LT saki
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Saki
October 19, 2026
Programming
27
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Kaigi on Rails 2026 After Event from ピクシブ LT saki
Saki
October 19, 2026
More Decks by Saki
See All by Saki
How to face the load
yensaki
0
300
Other Decks in Programming
See All in Programming
SFCで実現する病院・医療システムの動的組み立て式UI
koukimiura
1
130
Web Framework Benchmark Battle 2026, Any%
a_matsuda
3
3k
エージェントを使い続けるためのメタワーク / Meta-work for keeping using the agent
rkaga
6
1.9k
プロジェクトコードをキレイキレイしよう!暗黙的な参照を読み解く静的解析
ostk0069
0
130
R8 の設定見直しでアプリサイズ削減
andpad
0
230
Apple Intelligenceとオンデバイス時代の到来
yahir0
0
160
コードで差別化できない時代の ソフトウェアエンジニアリング / Software Engineering in an Era Where Code Doesn’t Differentiate
kishida
2
200
Spec-Driven Development - Why Vaadin Is the Perfect Fit
simas
PRO
0
140
Inertia Rails: The One-Person Framework with React & Friends
skryukov
0
170
S3 TablesのIcebergデータに、AIエージェントからアクセスしてみた / 20261016developersio2026joetsu-accessing-iceberg-in-s3tables-via-agent
kasacchiful
PRO
0
220
Zero-Tap Sign-In対応、結局何をすればいいの?
mitohato14
0
990
조합이폭발하는디자인시스템이걸눈으로도테스트하라고요
giljongyu
0
610
Featured
See All Featured
Side Projects
sachag
456
43k
Speed Design
sergeychernyshev
33
2.2k
The browser strikes back
jonoalderson
0
1.9k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
490
How to Talk to Developers About Accessibility
jct
2
590
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.3k
Paper Plane
katiecoart
PRO
5
54k
Visualization
eitanlees
153
17k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
74
43k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
From π to Pie charts
rasagy
1
420
Transcript
プロダクト成長につれて テーブル構造は枷になるか 共有資産になるか saki
ピクシブ株式会社 広告 テックリード & Vice Lead 初めてのRubyは1.8 初めてのRailsは2.3 saki @yensaki
3系でwhere メソッドに感動した
テーブルやカラムに、 実態に合わない名前を 残していませんか?
これは名前が重要な話 Rubyist一生聞いてる
しかし、初めから正解の名前は難しい 不確実な現実に沿って 仮置きして変えていく moroさん Kaigi on Rails 2025 Keynote
DBもそうしていきたいが DBはなかなかにしんどくないですか
2つの例を紹介して 考えてみます
ケース1. アカウントとロールの紐づけ
アカウントにロールをつける場合 アカウントに、アクセスや編集などの権限を付与可能にする話だと想像してください
中間テーブルの命名をよく見る account_roles …?
ロール付与者や有効期限が必要になったら? 無機質な名前の割に存在感が強くなってしまった…!(困る)
ケース2. コンテンツの表示可否管理
リストページに掲載できないものを管理したい list_available …?
でもそれは、リストページ限定で使うのでしょうか? 数ヶ月後にこんな展開に
Rails app 内側は新しい命名もできるが、カラムの方は残る list_availableカラムが #export_available? に使われる(困る)
こうして 最初に決めたテーブルが あとあとでまずいことに気づく
それぞれ、適切な概念があった
適切な概念があった : ケース1 → イベント概念
適切な概念があった : ケース2 → 本当の意味 概念的には listpage ではなく法的要件のコントロールだった
動的に変更していきたいが …
1000万件に膨れていても現実的に変えられる? • 作り直す前提の設計なら問題なし • 仮に1000万件のテーブルに育っていたら…? ◦ 本番データ移行は相当に大変 • 勘案して見送るケースが多い
移行が大変ならば … Q: 作成時に概念を得ることは可能か
そもそも 概念って Rails + DB だけで扱う?
PdMや営業も不可視の概念を持っているのでは?
特に現代は、 PdMや営業も可視の DBを使う
バラバラだと気付けないので 構造を揃える
事業の構造を揃えてから DBの設計に反映させる 概念を揃える(データ構造を共有のものにする)
概念の可視化は抽象的で 結構難しい ホワイトボードなどが 自由に描けてオススメ
データ構造が足枷になると Railsの良さが減ってしまう! プロダクト概念を具現化した 共有資産にしていきたい end