ฉันกำลังพัฒนาเว็บแอปพลิเคชันที่ใช้ MS SQL สำหรับข้อมูลต่าง ๆ : รวมถึงผู้ใช้บัญชีผู้ใช้ใบอนุญาตผู้ใช้ราคาใบอนุญาตใบแจ้งหนี้
ฉันต้องการบันทึกการใช้งานแบบเรียลไทม์ของระบบของผู้ใช้และใช้สำหรับการเรียกเก็บเงินรายเดือน: เช่นบันทึกเมื่อใดก็ตามที่ผู้ใช้ได้รับหน้า / URL ที่เฉพาะเจาะจงและผู้ใช้ที่เรียกเก็บเงินเมื่อสิ้นเดือนตามจำนวนหน้าที่ดึงข้อมูล
ฉันควรเขียนบันทึกเหตุการณ์เหล่านี้ลงในตารางในฐานข้อมูล MS SQL ของฉันหรือไม่
ฉันควรเขียนเหตุการณ์บันทึกเหล่านี้ลงในไฟล์บันทึกแบบต่อท้ายที่ไม่ใช่ SQL เท่านั้นหรือไม่
ฉันควรเขียนบันทึกเหตุการณ์เหล่านี้ลงในไฟล์บันทึกที่แตกต่างกันสำหรับผู้ใช้แต่ละคนหรือไม่
นี่ไม่ใช่เว็บไซต์ที่มีปริมาณมากโดยเฉพาะตัวอย่างเช่นมีผู้ใช้สูงสุด 10,000 คนต่อการทำกิจกรรมเฉลี่ย 5 เหตุการณ์ต่อวัน => 50,000 กิจกรรม / วัน = 30 กิจกรรม / นาที = 18,000,000 กิจกรรม / ปี
ฉันถามเพราะดูเหมือนว่าตัวเลือกจะทำงานได้และฉันไม่เห็นว่ามีข้อได้เปรียบที่ชัดเจน
ข้อมูลที่เกี่ยวข้องกับเหตุการณ์ที่เรียกเก็บเงินได้นั้นง่ายมากเช่น:
- ID ผู้ใช้ (ความสัมพันธ์กับ foreign key ไปยังตารางผู้ใช้ใน SQL)
- วันและเวลา
- URL ของหน้าที่เรียกเก็บเงินได้
คำตอบของฉันสำหรับคำถามนี้มีดังนี้:
ประโยชน์บางประการของการเขียนบันทึกลงในตารางฐานข้อมูล:
- ความสัมพันธ์เชิงสัมพันธ์: เช่นเหตุการณ์ที่บันทึกไว้จะเชื่อมโยงกับ ID ผู้ใช้ที่ถูกต้อง (โดยกำหนด ID ผู้ใช้เป็น foreign key ระหว่างตาราง)
- อ่านง่ายสำหรับการเรียกเก็บเงิน: เช่น
SELECT COUNT GROUP BY
เพื่อนับจำนวนบันทึกเหตุการณ์ต่อผู้ใช้
ประโยชน์ของการเขียนไปยังล็อกไฟล์:
- ประสิทธิภาพที่ง่ายขึ้น: SQL ถูกใช้น้อยกว่าเช่นสำหรับเหตุการณ์การเข้าสู่ระบบของผู้ใช้และส่วนใหญ่ใช้สำหรับการอ่านเท่านั้น
- การจัดการที่ง่ายขึ้น: เก็บถาวรข้อมูลเก่าได้ง่ายกว่าเช่นสิ้นปีย้ายไฟล์บันทึกเก่าแทนที่จะลบหรือเก็บถาวรจากฐานข้อมูล
โปรดแจ้งให้เราทราบหากคำตอบของฉันไม่ถูกต้อง หรือพูดเกินจริงถึงความสำคัญของบางสิ่ง; หรือลืมการพิจารณาที่สำคัญบางอย่าง
และ / หรือโปรดแจ้งให้เราทราบว่าคำตอบของคุณคืออะไรถ้ามันแตกต่างจากของฉัน