ฉันจะเน้นในเรื่องนี้และปฏิบัติตามหลักการ "ยังไม่ได้เพิ่มประสิทธิภาพ" สร้างโซลูชันที่สมเหตุสมผลในขณะนี้และเป็นแนวทางที่คุณมีทรัพยากรในการพัฒนาเพื่อนำไปใช้อย่างเหมาะสม มีปัญหาที่อาจเกิดขึ้นมากมาย แต่สิ่งเหล่านั้นไม่จำเป็นต้องกลายเป็นปัญหาที่แท้จริง เช่นมันอาจจะไม่เป็นปัญหาหากคุณมีผู้ใช้ 100 คน มันอาจจะมีปัญหาหากคุณมี 100,000 10,000,000 ผู้ใช้ แต่ในกรณีหลังนี้ควรมีพื้นฐานสำหรับทรัพยากรการพัฒนาเพิ่มเติมเพื่อจัดการกับปัญหาทั้งหมด
แต่การจัดเก็บข้อมูลในฐานข้อมูลจะทำให้คุณไม่สามารถจัดการกับปัญหาอื่น ๆ ได้เช่นที่จัดเก็บไฟล์วิธีการสำรองข้อมูล ฯลฯ เมื่อคุณเขียนเว็บแอปพลิเคชั่นมันจะเป็นการดีมากสำหรับเหตุผลด้านความปลอดภัย เพื่อให้แน่ใจว่ากระบวนการโฮสต์แอปพลิเคชันไม่มีสิทธิ์ในการเขียนในระบบไฟล์ดังนั้นคุณต้องกำหนดค่าเซิร์ฟเวอร์เพื่อให้กระบวนการมีสิทธิ์ในการอ่าน / เขียนไปยังโฟลเดอร์ที่จัดเก็บข้อมูล
ฉันเองจะเลือกที่จะเก็บข้อมูลในฐานข้อมูล แต่ให้แน่ใจว่า BLOBS จะไม่อ่านจนกว่าพวกเขาจะมีความจำเป็นจริงๆเช่นไม่มี "SELECT * FROM ... " ดำเนินการในตารางเหล่านั้นที่มีบล็อก และฉันจะทำให้แน่ใจว่าการออกแบบทำให้ง่ายต่อการย้ายข้อมูลออกจากฐานข้อมูลไปยังระบบไฟล์ถ้าคุณประสบปัญหาเกี่ยวกับประสิทธิภาพ ตัวอย่างเช่นจัดเก็บข้อมูลไฟล์ในตารางไฟล์แยกต่างหากดังนั้นการเก็บข้อมูลไฟล์ให้ห่างจากเอนทิตีธุรกิจอื่น ๆ
สมมติว่าคุณมีคลาสFileสำหรับแสดงไฟล์ที่อ่านในฐานข้อมูลจากนั้นผลกระทบการเข้ารหัสของการย้ายไฟล์ในภายหลังจะน้อยที่สุด