-
Ide dalam desain database, adalah untuk menjaga setiap elemen data terpisah. Dan setiap elemen memiliki tipe data, batasan, dan aturannya sendiri.
c0002itu bukan satu bidang, tetapi dua. Sama denganXXXnnnatau terserah. Itu tidak benar , dan akan sangat membatasi kemampuan Anda untuk menggunakan data, dan menggunakan fitur dan fasilitas basis data.Bagi menjadi dua item data terpisah:
column_1 CHAR(1)
column_2 INTEGERKemudian atur AUTOINCREMENT pada
column_2Dan ya, Kunci Utama Anda dapat berupa
(column_1, column_2), jadi Anda tidak kehilangan arti apa punc0002punya untuk Anda. -
Jangan pernah menempatkan pemasok dan pelanggan (apa pun artinya "c" dan "s") di meja yang sama. Jika Anda melakukannya, Anda tidak akan memiliki tabel database, Anda akan memiliki file datar. Dan berbagai masalah dan keterbatasan yang diakibatkannya.
Artinya, Normalisasikan data. Anda akan berakhir dengan:
- satu meja untuk
PersonatauOrganisationberisi data umum (Name, Address...) - satu meja untuk
Customerberisi data khusus pelanggan (CreditLimit...) - satu meja untuk
Supplierberisi data khusus pemasok (PaymentTerms...) - tidak ada kolom yang ambigu atau opsional, oleh karena itu tidak ada Nulls
- tidak ada batasan penggunaan atau fungsi SQL
.
Dan ketika Anda perlu menambahkan kolom, Anda melakukannya hanya jika diperlukan, tanpa mempengaruhi semua tuntutan lain dari file datar. Cakupan efek terbatas pada ruang lingkup perubahan.
- satu meja untuk