جدول المستخدمين المؤقتين أو جدول المستخدمين الشرعيين؟

StackOverflow https://stackoverflow.com/questions/2406323

  •  18-09-2019
  •  | 
  •  

سؤال

لدي تطبيق ويب مستقل يتيح للمستخدمين تسجيل الأحداث. في قاعدة البيانات الخاصة بي، لدي جدول t_events_applicants مع العمود t_events_applications.user_id مع قيد مفتاح أجنبي مرتبط بعمود t_users.user_id. لذلك هذا يعني فقط المستخدمين الذين سجلوا مع تطبيق الويب الخاص بي يمكن التسجيل في أحداث تطبيق الويب الخاص بي.

يود موكلي الآن السماح للمستخدمين غير المسجلين، المستخدمين الذين ليس لديهم إدخال في جدول T_USER الخاص بي، للتسجيل في الأحداث. يحتاج المستخدمون غير المسجلين هؤلاء فقط إلى توفير اسمهم وعنوان بريدك الإلكتروني للتسجيل في الأحداث.

يجب أن أقوم بإنشاء جدول T_temporary_User مع اسم الأعمدة والبريد الإلكتروني ثم قم بإزالة T_Events_Applicants.USER_ID FK Constraint؟ أو يجب أن أضيف المستخدمين غير المسجلين إلى جدول T_USER ثم إضافة عمود يسمى T_USER.TYPE حيث يمكن "تسجيل" أو "غير مسجل"؟

كيف يمكنني أن أقرر أي طريقة للذهاب؟

في كثير من الأحيان، أتردد في أي منهما. أسأل نفسي "ماذا لو في وقت لاحق، يسمح للمستخدم المؤقت بأن يصبح مستخدم مسجل بالكامل؟ ربما يجب أن يكون لدي سوى جدول T_USER. ولكن بعد ذلك أنا أيضا لا أشعر أنني بحالة جيدة حول تخزين الكثير من المستخدمين المؤقتين في t_user. "

هل كانت مفيدة؟

المحلول

لن يكون ذلك أساسا دورا؟

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

نصائح أخرى

سأذهب مع نهجك الثاني: أضفهم في نفس الجدول، ولكن مع عمود النوع. إذا قمت بإنشاء طاولتين للمستخدمين، فسيتعين عليك دائما التحقق من ذلك للعثور على مستخدم، إلخ. مع جدولين، كيف سيكون لديك قيد من المستخدم إلى شيء يخلقونه؟ احتفظ به بسيطة، فهي مستخدم، مجرد نوع مختلف.

إذا كان لديك تاريخ خلق أو Lastlogin في جدول المستخدمين (أو بعضها البعض)، فيمكنك إزالة مستخدمي TEMP بعد فترة زمنية معينة.

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top