2012-02-09 40 views
7

Tôi đang tạo CMS tùy chỉnh cho trang web của mình và tôi sẽ lưu trữ các bài viết (Văn bản và hình ảnh trên mỗi bài viết) trong cơ sở dữ liệu mysql. datatype nào phù hợp nhất cho nhiệm vụ đó?Kiểu dữ liệu nào là tốt nhất để lưu trữ các bài viết trong cơ sở dữ liệu SQL?

+0

Giả sử 'TEXT' sẽ là kiểu dữ liệu tốt nhất cho việc này. –

+1

Tôi không biết lý do chính xác tại sao bạn muốn lưu trữ các hình ảnh trong cơ sở dữ liệu, nhưng tôi tin rằng nó tốt để giữ hình ảnh trên ổ đĩa địa phương của máy và chỉ lưu trữ 'đường dẫn' trong cơ sở dữ liệu. Nó sẽ tốt cho hiệu suất. Bỏ qua tôi nếu tôi sai. Tôi không phải là chuyên gia CMS. Trân trọng – Scorpion

Trả lời

5

Bạn không nên cố gắng để lưu trữ văn bản và hình ảnh trong một lĩnh vực duy nhất, và trong trường hợp này có lẽ bạn không nên lưu trữ hình ảnh trong cơ sở dữ liệu của bạn ở tất cả.

Giải pháp tốt nhất cho việc này là sử dụng một số loại hệ thống đánh dấu trong bài viết của bạn - tại đây đơn giản nhất có thể là tập hợp con đã lọc html - được lưu trữ dưới dạng văn bản thuần túy trong cơ sở dữ liệu của bạn và sau đó được phân tích cú pháp trong trình duyệt một số cách. Rõ ràng nếu bạn sử dụng html được lọc, bạn sẽ không cần phải viết bất kỳ mã đặc biệt nào để phân tích nó, nhưng việc sử dụng phương pháp này làm tăng các vấn đề bảo mật có thể xảy ra.

Các tùy chọn khác để điều tra bao gồm Markdown (hệ thống được sử dụng bởi trang web này) cũng như BBCode (chủ yếu được sử dụng bởi các diễn đàn trực tuyến), cũng như nhiều người khác.

Để tóm tắt - không lưu trữ hình ảnh và văn bản trong một trường. Lưu trữ văn bản và diễn giải văn bản đó để tải hình ảnh và phương tiện khác trong bài viết của bạn khi thích hợp.

1

Lưu hình ảnh dưới dạng VARCHAR, nhưng chỉ tên hình ảnh (và/hoặc vị trí, tùy thuộc vào cỡ cm của bạn), lưu văn bản thành - TEXT.

1

Trong văn bản sử dụng ý kiến ​​của tôi cho các bài viết, có chứa các ký tự HTML, đó là những gì tôi sử dụng. Nhưng có nhiều thứ khác để xem xét. Nó phụ thuộc vào nội dung bài viết của bạn. Trong hình ảnh của bạn tùy thuộc vào bạn, bạn sẽ chỉ lưu trữ đường dẫn của hình ảnh, trừ khi bạn có kế hoạch lưu trữ hình ảnh.

0

Lưu trữ hình ảnh và văn bản riêng biệt. Giả sử bạn đang cố gắng lưu trữ các hình ảnh nhị phân trong cơ sở dữ liệu, tôi khuyên bạn nên lưu trữ hình ảnh dưới dạng một kiểu dữ liệu BLOB và TEXT cho văn bản.

Không sử dụng VARCHAR cho văn bản bài viết vì nó không tự động mở rộng qua kích thước bạn tạo ra.

1

Vui lòng xem điều này article trong đó Microsoft khẳng định kiểu dữ liệu text sẽ biến mất và do đó không được sử dụng trong phát triển mới. Các lựa chọn thay thế là varchar và nvarchar cho văn bản và varbinary cho hình ảnh.

0

VARCHAR sẽ là lựa chọn tốt nhất để lưu trữ bài viết văn bản vì các loại dữ liệu văn bản và hình ảnh sẽ biến mất trong tương lai.

Đối với hình ảnh, bạn có thể lưu trữ chúng trong một thư mục tương tự như những gì bạn sử dụng cho css/js và lưu trữ giá trị src của nó trong cơ sở dữ liệu. Điều này sẽ có hiệu quả cả về tốc độ lẫn dung lượng.

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