Semua kunci utama adalah nilai yang telah kami tentukan adalah nilai yang paling penting dalam rekaman. Apakah kunci itu adalah int yang ditandatangani, int yang tidak ditandatangani, string, gumpalan (sebenarnya, ada batasnya) atau UUID (atau nama apa pun yang dibutuhkan hari ini), faktanya masih ada bahwa itu adalah kunci, dan itu adalah hal yang paling penting.
Karena kita tidak dibatasi untuk hanya menggunakan angka berorientasi positif untuk kunci kita, masuk akal untuk mempertimbangkan bahwa int yang ditandatangani hanya akan menjadi ~ 2 miliar, sedangkan int yang tidak ditandatangani akan menjadi ~ 4 miliar. Tapi tidak ada yang salah dengan menggunakan int yang ditandatangani, menetapkan nilai awal menjadi ~ -2 miliar dan menetapkan kenaikan satu. Setelah ~ 2 miliar rekaman Anda akan mencapai "nol" dan kemudian Anda akan terus ~ 2 miliar.
Mengenai mengapa akan membantu memiliki "kunci negatif" dalam sebuah tabel, itu pertanyaan yang sama dengan "mengapa membantu memiliki kunci dalam sebuah tabel". "Nilai" kunci tidak memengaruhi statusnya sebagai kunci. Kunci adalah kunci adalah kunci.
Yang penting adalah jika kuncinya valid.
Mengenai mengapa akan berguna untuk mengizinkan kunci yang negatif, saya dapat menyarankan beberapa alasan:
Bagaimana jika Anda ingin menunjukkan pengembalian dalam sistem penjualan sebagai nomor pesanan penjualan negatif, yang cocok dengan nomor pesanan penjualan positif, sehingga membuat korelasi mudah (ini naif, dan dirancang dengan buruk, tetapi itu akan bekerja dalam arti "spreadsheet").
Bagaimana jika Anda ingin memiliki tabel pengguna, dan mengindikasikan bahwa tabel dengan angka negatif dikontrol sistem (SO melakukan hal ini, untuk pengguna feed obrolan).
Saya bisa melanjutkan, tetapi sebenarnya satu-satunya alasan mengapa angka menjadi negatif adalah penting adalah jika Anda atau saya menetapkan kepentingan untuk itu. Selain itu, tidak ada alasan besar untuk nilai kunci untuk memiliki pengaruh pada kunci itu sendiri.