2009-01-29 20 views
18

Tôi sẽ triển khai một ngôn ngữ định dạng nhẹ (có thể là Dệt may, có thể là Markdown) trong một dự án mà tôi đang làm, và tôi tự hỏi làm thế nào tốt nhất để lưu trữ nó trong cơ sở dữ liệu.Làm cách nào để lưu trữ định dạng gọn nhẹ (Dệt, Đánh dấu) trong cơ sở dữ liệu?

Nếu người dùng có thể chỉnh sửa nội dung họ đang đăng, điều đó có ý nghĩa với tôi rằng đánh dấu ban đầu, không chuyển đổi được lưu trữ để người dùng không phải chỉnh sửa HTML vào lần sau. Nhưng vì nội dung sẽ được hiển thị nhiều hơn nhiều so với chỉnh sửa, việc lưu trữ một bản sao nội dung được chuyển đổi có ý nghĩa để bản gốc không phải được gửi qua Dệt may trên mỗi lần xem trang.

Vì vậy, thực tiễn phổ biến là lưu trữ cả nội dung gốc và nội dung được chuyển đổi song song trong cơ sở dữ liệu? Có cách nào tốt hơn?

Cảm ơn!

Trả lời

25

cửa hàng markdown:

  • Mỗi view = chuyển đổi
  • Mỗi edit = không xử lý

Lưu trữ html

  • Mỗi view = không xử lý
  • Mỗi edit = chuyển đổi sang Markdown và ngược

cửa hàng cả

  • Mỗi view = không xử lý
  • Mỗi edit = chuyển đổi sang html sau khi chỉnh sửa

Bạn phải cân nhắc chi phí xử lý so với chi phí lưu trữ của mình.

1

Bạn nên lưu trữ đánh dấu Dệt/Đánh dấu ban đầu và sử dụng công cụ lưu trữ HTTP chuẩn (Last-modified, Expires-At, ETag) vào bộ nhớ cache hoặc chỉ lưu lại kết quả đánh dấu xử lý.

1

Tôi hiện đang sử dụng Markdown với PHP. Tôi lưu trữ nguồn đánh dấu trong cơ sở dữ liệu và tôi hiển thị Phiên bản được chuyển đổi theo yêu cầu. Tôi không có vấn đề về hiệu suất và tôi rất hài lòng với thiết lập này.

1

Điều tôi đã thấy thực sự là lưu trữ HTML được biên dịch trong một hàng riêng biệt trong cơ sở dữ liệu. Chỉ cần có một hàng 'nội dung' và một 'content_html' khác, và lưu HTML đã biên dịch trong hàng 'content_html'.

(Chắc chắn bạn có một số loại phương pháp tiết kiệm mà bạn có thể ghi đè lên để làm điều này?)

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