আমি একটি ওয়েব অ্যাপ্লিকেশন বিকাশ করছি যা বিভিন্ন ডেটার জন্য এমএস এসকিউএল ব্যবহার করে: ব্যবহারকারী, ব্যবহারকারী অ্যাকাউন্ট, ব্যবহারকারীর লাইসেন্স, লাইসেন্সের দাম, চালান সহ।
সিস্টেমের আসল-সময় ব্যবহারের জন্য আমাকে লগ করতে হবে এবং এটি মাসিক বিলিংয়ের জন্য ব্যবহার করতে হবে: উদাহরণস্বরূপ যখন কোনও ব্যবহারকারী নির্দিষ্ট পৃষ্ঠা / ইউআরএল পায় এবং মাসের শেষে বিল ব্যবহারকারীরা তাদের প্রাপ্ত পৃষ্ঠাগুলির সংখ্যার ভিত্তিতে লগ করে থাকে।
আমার এমএস এসকিউএল ডাটাবেসে কোনও লগ ইভেন্টগুলিকে একটি টেবিলের মধ্যে লিখতে হবে?
আমি কি এই লগ ইভেন্টগুলিকে একটি নন-এসকিউএল অ্যাপেন্ড-কেবলমাত্র লগ ফাইলটিতে লিখতে পারি?
আমি কি প্রতিটি ব্যবহারকারীর জন্য এই লগ ইভেন্টগুলি আলাদা লগ ফাইলে লিখব?
এটি কোনও উচ্চ-ভলিউম ওয়েবসাইট নয়: উদাহরণস্বরূপ, সর্বোচ্চ 10,000 ব্যবহারকারী প্রত্যেকে গড়ে 5 লগযোগ্য ইভেন্ট / দিন => 50,000 ইভেন্ট / দিন = 30 ইভেন্ট / মিনিট = 18,000,000 ইভেন্ট / বছর করছেন।
আমি জিজ্ঞাসা করছি কারণ উভয় বিকল্পই কার্যক্ষম বলে মনে হচ্ছে এবং এর কোনও সুস্পষ্ট সুবিধা আছে কিনা তা আমি দেখতে পাচ্ছি না।
বিলযোগ্য ইভেন্টের সাথে সম্পর্কিত ডেটাগুলি সহজ, যেমন:
- ব্যবহারকারী আইডি (এসকিউএল ব্যবহারকারীদের সারণীর সাথে বিদেশী কী সম্পর্ক)
- তারিখ এবং সময়
- বিলযোগ্য পৃষ্ঠাটির URL
এই প্রশ্নের আমার নিজের উত্তর নিম্নরূপ:
ডেটাবেস টেবিলটিতে লগ লেখার কিছু সুবিধা:
- প্রাসঙ্গিক অখণ্ডতা: যেমন লগ করা ইভেন্টগুলি বৈধ ব্যবহারকারী আইডিগুলির সাথে সম্পর্কিত হয় (সারণীর মধ্যে বিদেশী কী হিসাবে ব্যবহারকারী আইডি সংজ্ঞায়িত করে)
- বিলিংয়ের জন্য পড়তে সহজ: উদাহরণস্বরূপ
SELECT COUNT GROUP BY
ব্যবহারকারীর প্রতি লগ ইভেন্টের সংখ্যা গণনা করা
লগ ফাইল লিখতে কিছু সুবিধা:
- আরও সহজ পারফরম্যান্স: এসকিউএল কম প্রায়ই ব্যবহৃত হয় যেমন শুধুমাত্র ব্যবহারকারী লগ-ইন ইভেন্টগুলির জন্য এবং বেশিরভাগই কেবল পড়ার জন্য ব্যবহৃত হয়
- আরও সহজ ব্যবস্থাপনা: বছরের শেষের দিকে, ডাটাবেস থেকে মুছে ফেলা / সংরক্ষণাগার পরিবর্তে পুরানো লগ ফাইলগুলি সরিয়ে দিয়ে পুরানো ডেটা সংরক্ষণাগার করা সহজ
আমার উত্তরটি ভুল হলে দয়া করে আমাকে জানান; বা কোনও কিছুর গুরুত্বকে অতিরঞ্জিত করে; বা কিছু গুরুত্বপূর্ণ বিবেচনা ভুলে গেছে।
এবং / অথবা দয়া করে আপনার উত্তরটি আমার জানা উচিত, যদি এটি আমার থেকে আলাদা হয়।