ناشناس

سوال 304

آیا میشه از یک جدول دیتابیس در دو برنامه استفاده کرد؟ یعنی مثلا با پایتون وب اسکرپینگ انجام بدم و نتایج رو بریزم توی یه جدول و بعد با لاراول به همین جدول وصل شوم و دیتاهای اسکرپ شده رو نمایش بدم؟

ثبت پاسخ جدید

برای ثبت پاسخ، لطفا وارد حساب کاربری خود شوید.

پاسخ‌ها

2 پاسخ

حتما از سایت زیر دیدن کن

https://codingtools.ir

بله 
به عنوان مثال در اکثر سرویس‌های بزرگ برای اینکه بشه حجم بالای بازدیدها رو پوشش داد یک Load Balancer قرار داده می‌شه که تقاضاهای کاربران رو بین چندین نسخه از برنامه تقسیم می‌کنه. یعنی در واقع از چندین برنامه مختلف به یک پایگاه داده درخواست فرستاده می‌شه.



در مورد مثالی که زدید، برای پایگاه داده زبانی که برنامه با اون نوشته شده تفاوتی نداره، در نتیجه می‌تونید به راحتی با Python کار اسکریپینگ رو انجام بدید و با هر زبان دیگه‌ای برنامه بنویسید که کار نمایشش رو انجام بده.



تنها مواردی که باید رعایت کنید اینه که در صورتی که بعضی از اطلاعات رو به صورت Serialized در پایگاه داده ذخیره می‌کنید، مطمئن باشید فرمت Serialize کردن در هر دو زبان برنامه‌نویسی پشتیبانی می‌شه. مثلا JSON در اکثر زبان‌ها پشتیبانی می‌شه و نتیجه یکسانی خواهد داشت.



همینطور باید مواظب Lock شدن جدول باشید. در صورتی که با سرعت خیلی زیادی روی یه Table اطلاعات اضافه کنید بسته به نوع پایگاه داده و نحوه تنظیمش امکان داره جدول شما قفل بشه. لازم به ذکره این موضوع ارتباطی به استفاده از دو برنامه نداره و حتی اگر وب اسکریپینگ و نمایش هر دو روی یک برنامه اجرا می‌شد هم امکان قفل شدن جدول وجود داشت.



برای حل این موضوع می‌تونید یا از پایگاه داده‌هایی استفاده کنید که سرعت Insert روشون زیاد هست (مثل Mongodb) و یا از یه سیستم Cache مثل Redis استفاده کنید که در اکثر Query‌ها اصلا به جدول پایگاه داده اصلی تقاضایی فرستاده نشه، و یا از Database Replication استفاده کنید، به این نحو که وب‌اسکریپینگ رو روی Master انجام بدید، و نمایش رو از روی نسخه Slave انجام بدید.