~/talk

Rails anti-patterns: how not to design your database

Talkat EuRuKo 2018 · 2018-08-24..08-25· [ruby-on-rails]
slides:none on file

Warns that at Procore a 14‑terabyte database handles heavy load (about 50,000 reads/writes) so design choices matter. Shows closure_tree gem (ancestor/descendent table) and ancestry gem (materialized path) with tradeoffs: single-join fast reads, reparenting cost, no referential integrity for paths, and benchmark-dependent performance. Compares polymorphic relations versus exclusive foreign keys and a base‑parent table, noting when polymorphic relationships scale for many parent types and when foreign keys or extracted parent rows give safer, faster integrity.

AI-written summary · about

  1. 0:00Start
  2. 8:18Naive Trees
  3. 11:47Deleting in a Tree
  4. 13:05The Closure Tree
  5. 15:02Closure Tree
  6. 15:41Referential Integrity
  7. 15:59Materialized Path
  8. 17:26Ancestry
  9. 18:04Performance Comparison
  10. 19:18Anti-Pattern Number Two Polymorphic Relationships
  11. 21:48Disadvantages
  12. 23:23Exclusive Arcs
  13. 24:44Base Parent Table
  14. 26:34Recap
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.