هل استخدم قاعدة بيانات لكل مشترك ؟ أم قاعدة بيانات واحدة للكل ؟

هل استخدم قاعدة بيانات لكل مشترك ؟ أم قاعدة بيانات واحدة للكل ؟

السلام عليكم ورحمة الله وبركاته

أنا مبرمج php&mysql

أحتاج استشارة ..

سأقوم ببرمجة برنامج سحابي إدارة مبيعات ونقاط بيع.

بحيث سيحتوي على الفواتير وقائمة الموظفين والمنتجات واحصائيات للمبيعات لكل منتج على حدة وصفحة نقاط بيع وتقارير الموظفين والاجازات وتقارير العملاء وحساب الأرباح والخسائر وغيرها من الميزات الموجودة في برامج إدارة المبيعات.

وذلك بغرض جعله متاحا لأصحاب المتاجر بـ اشتراك سنوي.

_____

السؤال ::

هل أجعل جميع البيانات تخزن في قاعدة بيانات واحدة ؟

أم اجعل لكل اشتراك قاعدة بيانات منفصلة ؟؟

_____________

اقتراحاتكم ؟


يمكن في كلتا الحالتين ، ولكن إذا تريد أن يكون موقعك من نوع saas أو software as a service بحيث يمكن لكل تاجر أن يستأجر عليك هذه الخدمة ويكون له نطاق متفرع من نطاقك ، مثلا تفترض أن اسم نطاقك example.com فسيكون نطاق المسـتأجر name.example.com ، وهنا يجب تطبيق فكرة Multi-tenant database design ، وهذه أنواع تصاميمها

  • قاعدة بيانات مشتركة. يتشارك المستأجرون الموارد والتخزين مع قاعدة بيانات واحدة مقسمة إلى أعمدة معرف (عمود لكل عميل).
  • قاعدة بيانات مخصصة. يتكون النموذج من مجموعات الموارد ، مع وجود قاعدة بيانات منفصلة لكل مستأجر في مجموعة. يقوم البائع بنقل قواعد البيانات هذه بين مجموعات الموارد لتحسين استخدام الموارد.
  • قواعد البيانات المشتركة. يتم تقسيم بيانات المستأجر إلى "أجزاء" متحركة عبر عدة قواعد بيانات.
  • قواعد البيانات الهجينة المقسمة. يقوم بعض المزودين بنقل موارد المستأجر بين قواعد البيانات المخصصة والمشتركة. هذه الإستراتيجية مناسبة بشكل أفضل للأنظمة الأساسية ذات مستويات الاشتراك (على سبيل المثال ، المستوى المجاني والخطط على مستوى المؤسسة).

شكرا لك على ردك :: دخلتني عالم جديد أشعر بأني سأستفيد منه استفادة قوية جدا

أشكرك ::

قاعدة بيانات مشتركة. يتشارك المستأجرون الموارد والتخزين مع قاعدة بيانات واحدة مقسمة إلى أعمدة معرف (عمود لكل عميل).

هل هذه الطبيعية التي أستخدمها في العادة ؟

أي :: جداول وأضع مثلا في نهاية كل جدول UserID لتحديد ان هذا الحقل للمشترك صاحب هذا الآي دي.

هل هذا هو المقصود هنا ؟

قاعدة بيانات مخصصة. يتكون النموذج من مجموعات الموارد ، مع وجود قاعدة بيانات منفصلة لكل مستأجر في مجموعة. يقوم البائع بنقل قواعد البيانات هذه بين مجموعات الموارد لتحسين استخدام الموارد.

بسبب حجم البيانات الكبير لكل مشترك أعتقد بأني سأستخدم هذا النوع.