Araştırma 🇷🇺 24.07.2026 11:01

Why the Generalized Data Model Is Not Yet Another Bad CaRMa: Analysis of Four Pitfalls and Measurements on a Live Database

The author compares their generalized data model (a quartet of id, up, t, val) with the failed CRM Vision from the book 'Dreaming in Code,' explaining why their approach does not repeat the mistakes of Bad CaRMa. The model implements a type system, a request controller, and indexes, confirmed by measurements: record collection takes 0.16 ms, and link traversal takes 0.30 ms. A concrete example is also shown: without an index, a query took 4 seconds; after adding one, it took 0.09 ms.
Habr'da yayınlanan bir makalede, Scott Rosenberg'in "Dreaming in Code" kitabındaki CRM Vision örneği (Bad CaRMa adıyla) üzerinden genelleştirilmiş veri modelleri sorunu ele alınıyor. Vision, türü olmayan 240'tan fazla sütuna sahip tek bir DATA tablosu kullanıyordu; bu da basit bir arama için 6-10 self-join işlemine, performans düşüklüğüne (50 GB veri için 250 GB indeks gerekiyordu) ve 10 milyon dolar zarara yol açtı. Yazar, kendi modellerinin (dörtlü: id, up, t, val) üç katman sayesinde bu hataları tekrarlamadığını iddia ediyor: tür sistemi (çekirdekte temel türler, kullanıcı tanımlı terim türleri, gerçek ilişkiler), WITH RECURSIVE ile otomatik SQL üreten bir denetleyici ve indeksler ((t, val) ve (up, t) üzerinde bileşik kapsayıcı indeksler). Postgres'te 133.731 dörtlüden (168 MB veri, 40 MB indeks) oluşan bir veri tabanında, türe göre tam eşleşme 0,08 ms, bir kaydın tüm özelliklerini toplama 0,16 ms ve ilişkileri dolaşma 0,30 ms sürüyor. Karşılaştırma olarak, belirtilen t ve up değerleri olmadan yapılan bir ANN-indeks sorgusunun Seq Scan ile 4 saniye sürdüğü, kısmi indeks eklendikten sonra ise 0,09 ms'ye düştüğü belirtiliyor. Yazar ayrıca Datomic'i doğru bir EAV (Entity-Attribute-Value) örneği olarak anıyor, ancak niş bir ürün olduğunu belirtiyor. Sonuç: Tür sistemi, denetleyici ve EXPLAIN ile doğrulanmış gerçek indeksler varsa, genellik bir günah değildir.
Kaynak: Habr — хаб ИИ — orijinal
Bu konudaki önceki yazılarımız ↓
Güncel haberler