Bạn nên sử dụng INT khi bạn muốn sử dụng khóa chính (một INT nhanh hơn để tìm kiếm hơn một chuỗi) hoặc tính toán dữ liệu. Ví dụ: bạn muốn tính số lượng mặt hàng mà người nào đó đã mua khi đặt hàng một số sản phẩm trực tuyến. Mỗi dòng sẽ có mô tả bài viết, giá cả, số lượng đặt hàng (và nhiều hơn nữa - chỉ đưa ra một ví dụ ở đây). Trong trường hợp này, do một INT cho số lượng nó sẽ được dễ dàng để lấy số lượng sản phẩm (tổng số sản phẩm cho hóa đơn) đã ra lệnh.
Chuỗi có loại "char" và "varchar" hơi khác một chút. Loại "char" được định nghĩa như sau:
Chuỗi cố định có độ dài luôn được đệm đúng với khoảng trắng được chỉ định khi được lưu trữ.
Theo thứ tự, nếu bạn xác định tên đầu tiên bằng char (200), bạn sẽ sử dụng 200 byte. Loại VARCHAR được định nghĩa như sau:
Chuỗi có độ dài thay đổi. Lưu ý: Không gian lưu trữ được loại bỏ khi giá trị được lưu trữ (điều này khác với thông số kỹ thuật SQL ANSI)
Theo thứ tự, nếu bạn xác định tên đầu tiên với varchar (255) và tên là "Tim", bạn sẽ sử dụng 4 byte. 3 cho tên byte +1 cho độ dài của trường.
Thông thường, bạn sử dụng char (6) cho màu sắc HTML (FFFFFF) và thường bạn sử dụng varchar cho tên, địa chỉ vv ...
Về câu hỏi thứ hai của bạn là thiết lập các số trong ngoặc đơn. Số này sẽ đặt độ dài tối đa của một chuỗi. Nếu bạn đặt varchar (60) cho một trường và khi bạn chèn hoặc cập nhật bản ghi và độ dài của chuỗi lớn hơn 60 ký tự thì MySQL sẽ cắt bớt chuỗi để sử dụng 60 ký tự đầu tiên.
Bạn có thể kiểm tra tất cả các loại ruộng ở đây: http://help.scibit.com/mascon/masconMySQL_Field_Types.html
Bạn cũng có thể đọc về chuẩn hóa dữ liệu: http://en.wikipedia.org/wiki/Database_normalization
Nguồn
2011-08-29 03:17:22
câu hỏi là gì? –