Örneğin bilmek istiyorum. Bir varlık oluşturulduğunda veya güncellendiğinde. :created-at
ve :update-at
gibi bir öznitelik mi oluşturmalıyım yoksa Datomic bu özniteliklerini varsayılan olarak içeriyor mu? Ya da bir varlığın ne zaman oluşturulduğunu veya güncellendiğini öğrenmenin herhangi bir yolu?Datomic metadata'daki varlıklar oluşturma ve güncelleme zamanı gibi var mı?
cevap
Datomic'in tasarımında zaman önemlidir. Datomic'in zamana ilişkin görüşünün bir parçası, varlıkların tablolara eklendiği ve yeni gerçeklerin satırdaki eski gerçeklerin üzerine yazıldığı geleneksel bir CRUD veritabanında olduğu gibi varlıkların oluşturulmadığı veya güncellenmediği. Bunun yerine, varlıklar hakkındaki gerçekler zaman içinde ileri sürülür ve geri çekilir. Bu değişmez tarih göz önüne alındığında, Datomic onun şu anki haliyle nasıl olması gerektiğini biliyor. Sen zamanla geçmiş veritabanı verilerinizin yapısı hakkında o bilgi toplayabilir:
http://docs.datomic.com/clojure/#datomic.api/history
Yani at-eklenip güncellenmektedir-at, sen Datomic en güvenebilirsiniz ilgili soruya cevap yerleşik zaman bilinci . Şeyler oluşturulduğunda sorgulamak için - burada iki seçenek vardır. şema çeşit benzersiz bir tanımlayıcı içeriyorsa, (varlık ilk eklendiğinde, bir kez olmalı) bu özellik oluşturulduğu işlem başvurmak için Sorgunuzla kısıtlayabilir:
(d/q '[:find ?e ?tx-time
:where
[?e :user/id _ ?tx]
[?tx :db/txInstant ?tx-time]]
db)
Eğer yapabiliyorsanız' bu şekilde daha yavaş olacaktır
(d/q ':find ?e (min ?tx-time)
:in $ ?e
:where
[?e _ _ ?tx _]
[?tx :db/txInstant ?tx-time]
(history db) entity-id)
Not olduğunu, ancak: t başlatma sırasında bir özelliğin güvenmek, böyle bu parametreli sorguda gibi bir varlığa karşılık gelen tüm işlemler için minimum süreyi almak için bir tarih veritabanını kullanabilirsiniz potansiyel olarak daha sağlam. En son gerçeği ("güncelleme") istediyseniz, min
için max
altını kullanabilirsiniz.
- 1. Datomic
- 2. Sorgulanan varlıklar koleksiyonundan oluşturma
- 3. Elasticsearch index son güncelleme zamanı
- 4. ColdFusion - Dakika Sayısı Oluşturma Zamanı
- 5. www.bidhere.com gibi geri sayım zamanı.
- 6. LINQ'da Varlıklar için SQL "Var Olan Varlıklar" nasıl yapılır?
- 7. Yuvalama yapıları Datomic ile
- 8. Blackberry10'daki Varlıklar ile Paylaşılan Kitaplık Oluşturma
- 9. Java için VisualVM gibi .Net çözümleri için bir izleme ve profil oluşturma aracı var mı?
- 10. Tohum Varlıklar ve Kullanıcılar, Roller?
- 11. Django tasarım kalıpları - Bir Model Oluşturma ve Güncelleme Formları
- 12. java.awt.Polygon gibi bir codenameone sınıfı var mı?
- 13. Rust, Scanf gibi bir şey var mı?
- 14. Akıcı Nhibernate'de varlıklar ve ilişkiler üzerinde önbelleğe alma ayarlandı mı?
- 15. Z dizini oluşturma hatası var mı?
- 16. jQuery.toggle (boolean) gibi bir şey var mı?
- 17. Chrome'un CSS görünürlüğü oluşturma işleminde bir hata var mı?
- 18. YUI'da jQuery gibi seçiciler var mı?
- 19. ASP.NET'te Smarty gibi bir şey var mı?
- 20. Parçada setResult() gibi bir yöntem var mı?
- 21. Android'de NSDictionary gibi bir şey var mı?
- 22. aşağıda gösterildiği gibi oluşturma ve TPopupMenu
- 23. Datomic db.type/instant dosyasına nasıl tarih eklerim?
- 24. Etrafında bir çalışma zamanı C++ assembler kütüphanesi var mı?
- 25. Güncelleme gibi düğmeleri kontrol etmek için en iyi uygulamalar güncelleme ve silme için sqlite android
- 26. Mongoose.js: oluşturma veya güncelleme nasıl gerçekleştirilir?
- 27. Unity WebGL Dış Varlıklar
- 28. Özel bir derleme zamanı uyarısı oluşturma C#
- 29. RealmSwift'in yeniden oluşturulması gerekiyor. İndirebileceğim bir güncelleme var mı?
- 30. Güncelleme tabloları meta verilerini zorlamak için bir yol var mı?
Cevabınız için teşekkürler, ancak bu şekilde yapmak zor bulundu. Bu performans mı? Özellikle "güncelleme" zamanını bulmak durumunda? "Yarattığınız" ve "güncelle-at" bir özellik oluşturmak ya da atmak ister misiniz? Sipariş oluşturma süresine göre sipariş vermek istersem, bu kolay mı? Ve neden ilk ifadede "(history db)" kullanmadınız? Anlamadım. Çok teşekkür ederim. –
Bu özniteliklerin tanımlanması için gereksiz ve biraz ters etkilidir * * Datomic'in dışındaki bir zaman boyutuna karşılık gelmedikçe (Datomic gerçekler hakkındaki iddialar için günlüğe sahip olan zamanlar). Datomic'in günlük dizini (bkz. Log API http://docs.datomic.com/log.html), bu tür işlem süresi tabanlı sorgular için optimize edilmiştir. –
Ayrıca, pro-bölüm bölümünü datomik yardımdan da bulabilirsiniz: https://github.com/Datomic/day-of-datomic/blob/master/tutorial/provenance.clj –