-
Ide dalam desain database, adalah untuk menjaga setiap elemen data terpisah. Dan setiap elemen memiliki tipe data, batasan, dan aturannya sendiri.
c0002
itu bukan satu bidang, tetapi dua. Sama denganXXXnnn
atau 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_2
Dan ya, Kunci Utama Anda dapat berupa
(column_1, column_2)
, jadi Anda tidak kehilangan arti apa punc0002
punya 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
Person
atauOrganisation
berisi data umum (Name, Address
...) - satu meja untuk
Customer
berisi data khusus pelanggan (CreditLimit
...) - satu meja untuk
Supplier
berisi 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