Ich benutze PostgreSQL-Datenbank und habe eine cards
Tabelle.PostgreSQL nicht überlappende Bereiche
Jeder Datensatz (Karte) in dieser Tabelle hat Integer-Wert.
Zum Beispiel:
id | card_name |card_drop_rate
-------------------------------
1 |card1 |34
2 |card2 |16
3 |card3 |54
max Drop-Rate ist 34 + 16 + 54 = 104
.
Gemäß meiner Anwendungslogik muß ich einen zufälligen Wert zwischen 0 und 104 finden und dann Karte abrufen nach dieser Nummer, zum Beispiel:
Zufallswert: 71
card1 range: 0 - 34(0 + 34)
card2 range: 34 - 50(34 + 16)
card3 range: 50 - 104(50 + 54)
So, meine Karte ist card3 weil 71
in den Bereich gesetzt wird 50 - 104
Was ist der richtige Weg, um diese Struktur in PostgreSQL widerzuspiegeln? Ich werde diese Daten oft unter abfragen müssen, so dass die Leistung ein Kriterium Nummer eins für diese Lösung ist.
Danke für deine Antwort. Leider kann ich die erste Abfrage wegen eines Syntaxfehlers dort nicht ausführen. – alexanoid
und ja, +1 kann da vermieden werden – alexanoid