2011-08-29 38 views
5

tôi đã thực hiện một nghiên cứu để cơ sở dữ liệu của một cms:thiết kế trường bảng trong cơ sở dữ liệu mysql?

uid(Unique user ID): nó thiết lập để int(11)

name(nique user name nó thiết lập để varchar(60)

created(tiemstamp for when user was created) nó thiết lập để int(11)

title tiêu đề của bài viết đó thiết lập để varchar(255)

1, khi tôi nên sử dụng Int hoặc char hoặc varchar hoặc các loại khác

2, cách đặt số trong dấu ngoặc đơn。: varchar(60) cảm ơn bạn!

+0

câu hỏi là gì? –

Trả lời

10

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

+0

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. tại sao nó thêm 1 byte cho độ dài của trường. cảm ơn bạn,. – zhuanzhou

+5

Byte +1 được thực hiện bởi Công cụ MySQL. Bạn không thể thay đổi điều đó. Bởi vì varchar là một chuỗi có độ dài biến đổi, cần phải nói cho MySQL biết chuỗi dài bao lâu. –

3

Loại chung phụ thuộc vào những gì bạn cần lưu trữ. Tuy nhiên, tốc độ và kích thước của chỉ mục PK cũng rất quan trọng vì vậy điều này cũng được xem xét sau đó thiết kế các bảng cơ sở dữ liệu.

Số trong ngoặc đơn cho biết kích thước loại, có ý nghĩa khác nhau tùy thuộc vào loại (ví dụ: varchar, cho biết số ký tự tối đa có thể được lưu trữ). Bạn nên xem xét hướng dẫn sử dụng của động cơ db cho việc này.

Các vấn đề liên quan