Tôi đang học lập trình web-centric bằng cách viết cho mình một blog, sử dụng PHP với một cơ sở dữ liệu MySQL backend. Điều này sẽ thay thế blog hiện tại của tôi (Drupal).Lưu trữ bài đăng trong cơ sở dữ liệu hoặc tệp?
Tôi đã quyết định rằng một post
nên chứa một số dữ liệu: id
, userID
, title
, content
, time-posted
. Điều đó làm cho một lược đồ tốt đẹp cho một bảng cơ sở dữ liệu. Tôi đang gặp sự cố khi quyết định cách tôi muốn sắp xếp lưu trữ content
.
tôi có thể một trong hai:
- Sử dụng một hệ thống tập tin dựa trên. Bảng cơ sở dữ liệu
content
sau đó sẽ là một URL đến tệp được định vị cục bộ, sau đó tôi sẽ đọc, định dạng và hiển thị. - Lưu toàn bộ nội dung của bài đăng trong
content
, tức là đặt nó vào cơ sở dữ liệu.
Nếu tôi đi với (1), tìm kiếm các nội dung của bài viết sẽ là hơi có vấn đề - Tôi muốn được giới hạn trong siêu dữ liệu tìm kiếm, hoặc tôi sẽ phải đọc các nội dung của mỗi tập tin khi tìm kiếm (mặc dù tôi không biết có bao nhiêu vấn đề sẽ xảy ra - grep -ir "string" .
không phải là quá chậm ...). Tuy nhiên, hình ảnh (nếu có) sẽ được tham chiếu bởi URL, do đó, tham chiếu content
ít nhất sẽ là phương pháp nhất quán nội bộ và tôi muốn dễ dàng có thể sử dụng lại nội dung, vì các tệp văn bản rất dễ làm việc, so với tệp cơ sở dữ liệu SQL.
Đi với (2), tuy nhiên, tôi có thể sử dụng số longtext
. content
sau đó sẽ cần phải được khử trùng trước khi tôi cố gắng để đưa nó vào tuple, và tôi bị giới hạn bởi kích thước (mặc dù, nó không chắc rằng tôi muốn viết một bài đăng blog 4GB;). Tìm kiếm sẽ dễ dàng.
Tôi không (hiện tại) xem cách nào sẽ (a) dễ triển khai hơn, (b) dễ dàng hơn để sống.
Tôi nên đi theo cách nào/thông thường được thực hiện như thế nào? Bất kỳ ưu/khuyết điểm nào khác cho (1) hoặc (2) sẽ được đánh giá cao.
lập chỉ mục, v.v ... nếu bạn có cơ sở dữ liệu, bạn có thể lưu trữ dữ liệu trong nhiều bảng và liên kết chúng với khóa ngoài, v.v. – dee