Bu yaklaşan bir proje için. İki tablo var - ilk resim parçalarını tutar ve ikinci bir fotoğrafın rütbe izler
Photos:
+-------+-----------+------------------+
| id | photo | current_rank |
+-------+-----------+------------------+
| 1 | apple | 5 |
| 2 | orange | 9 |
+-------+-----------+------------------+
Fotoğraf sıralaması düzenli olarak sürekli değişiyor, ve bu onu izler tablo:
Ranks:
+-------+-----------+----------+-------------+
| id | photo_id | ranks | timestamp |
+-------+-----------+----------+-------------+
| 1 | 1 | 8 | * |
| 2 | 2 | 2 | * |
| 3 | 1 | 3 | * |
| 4 | 1 | 7 | * |
| 5 | 1 | 5 | * |
| 6 | 2 | 9 | * |
+-------+-----------+----------+-------------+ * = current timestamp
Every rank is tracked for reporting/analysis purpose. [Edit] Users will have access to the statistics on demand.
Ben bu alanda deneyime sahip birisiyle konuştum ve o yukarıdaki gibi saflarına saklamak gitmek için yol olduğunu söyledi. Ama henüz çok emin değilim.
Burada sorun data redundancy. Onbinlerce fotoğraf olmak için var olacak. Fotoğraf rütbe son fotoğraflar için bir saatlik bazda değişiklikler (birçok dakika kez-içinde) ama daha az sıklıkla eski fotoğraflar için. Bu gidişle tablo ay içinde kayıtları milyonlarca olacak. Ben büyük veritabanları ile çalışma deneyimi yok çünkü, bu beni biraz geriyor.
Ben bu düşünce:
Ranks:
+-------+-----------+--------------------+
| id | photo_id | ranks |
+-------+-----------+--------------------+
| 1 | 1 | 8:*,3:*,7:*,5:* |
| 2 | 2 | 2:*,9:* |
+-------+-----------+--------------------+ * = current timestamp
Bu rütbe / zaman (ve sıralamayı) bölmek için PHP bazı ekstra kod anlamına gelir, ama bu benim için Tamam görünüyor.
Bu performans için tabloyu optimize etmek için doğru bir yolu var mı? Ne tavsiye edersiniz?