Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Wie implementiert man lückenlose, benutzerfreundliche IDs in NHibernate?

Eine Option wäre, eine Schlüsseltabelle zu führen, die einfach einen inkrementierenden Wert speichert. Dies kann zu einigen Problemen führen, nämlich zu möglichen Sperrproblemen sowie zu zusätzlichen Treffern in der Datenbank.

Eine andere Option könnte darin bestehen, zu verfeinern, was Sie mit "benutzerfreundliche ID" meinen. Dies könnte aus einer Kombination aus Datum/Uhrzeit und einer kundenspezifischen Sequenz bestehen (oder auch die Kunden-ID enthalten). Außerdem muss Ihre Bestell-ID nicht unbedingt der tatsächliche Schlüssel auf der Tabelle sein. Es gibt nichts zu sagen, dass Sie keinen Ersatzschlüssel mit einer separaten "berechneten" Spalte verwenden können, die die Bestell-ID darstellt.

Das Fazit ist, dass es so klingt, als ob Sie einen Ersatzschlüssel verwenden möchten, aber die Vorteile eines natürlichen Schlüssels haben. Es kann sehr schwierig sein, beides zu haben, und vieles hängt davon ab, wie Sie die Daten tatsächlich verwenden möchten, wie Benutzer die Daten interpretieren und welche persönlichen Vorlieben Sie haben.