الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

إستفسار عن كيفية عمل الجداول ضمن قاعدة البيانات

بدأه dot.net2008 في 11 يوليو 2012 · 4 رد · 953 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

اخواني الكرام احياناً اصل لمرحلة في تصميم قاعدة البيانات تجعلني اقعد عن اكمال المشروع

مع ان الفكرة جداً متداولة علما اعتقد

----------------------------

عندي مثال حيجنّني :confused::confused: الرجاء التركيز معي إذا تكرمتم

اريد عمل قاعدة بيانات يوجد بها الجداول التالية

المدراء

المشرفين

العمال

طبعاً وبداخل كل جدول يوجد هناك حقول خاصة فيه من حيث الإسم والعنوان والمعومات المطلوبة من كل شخص كان (مدير , مشرف , عامل)

المشكلة الأولى :

1- يحق لكل المدارء الدخول للبرنامج من خلال اسم مستخدم وكلمة مرور تُعطى له .

2- يحق لبعض المشرفين الدخول للبرنامج والبعض الآخر لايحق له الدخول .

السؤال الأن :

أولاً : هل أقوم بعمل جدول للمستخدمين اسميه (Users)

إذا كانت الإجابة بنعم : لماذا ووكيف ؟؟ وهل سأقوم بربطه من خلال الـ ID (لا اعتقد ان هذه الطريقة فعالة)..

إذا كانت الإجابة بلا : إذاَ ما الحل ؟؟ (بحيث لا أريد عمل تكرار للبيانات وبنفس الوقت لا اريد ان اكثر من عمليات البحث والإستعلام (Select))

--

ثانياً : إذا اقنعتني وتم إضافة جدول Users كيف سيتم اخد بيانات كلاً من المدراء والمشرفين

ولاتقلي انه حياخذ الـ id من هذا الـ Table ومن هذا الـ Table لانه ممكن يحصل صدفة ويصادف رقم الـ id الموجود بجدول المدراء يساوي رقم الـ ID الموجود في جدول المشرفيين !!!!

ماهو الحل يارعاكم الله ؟؟؟!

---------

المشكلة الثانية : ماذا لو تم ترقية مشرف ما , من رتبة مشرف إلى مرتبة مدير !!!

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

إذا ما الحل بهذه القضية ... :(

ساعدوني رجاء والله إني داخل بـ 600 حيط :D:D

وهل لديكم إقتراحات لعمل ذلك بطريقة مُثلى وتسهل علي فيما بعد التعديل على الـ TABLE وإضافة وتعديل الـ Columns

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

#2

^<br>

#3

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

بالنسبة للمشكلة الأولى:

لا أنصحك بعمل جدول Users لعدة أسباب:

1-لأن ذلك قد يعرض البرنامج لخطر الإختراق عن طريق Sql Injection إذا كان كود البرنامج يحتوي على نقاط ضعف.

2-لأنه من الممكن الدخول للداتا بيز بشكل مباشر من خارج برنامجك.

3--لأنك لا تريد تكرار أسماء الأشخاص في جدول Users ولا تستطيع إستخدام الربط عن طريق Id لأنه من الممكن أن يتساوى Id في كلا الجدولين ( المشرفين والمدراء ).

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

بالنسبة للمشكلة الثانية :

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

ملاحظة :

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

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

تم تعديل هذه المشاركة بواسطة DOWNLOADER في 12 يوليو 2012 في 12:39

1
#4

نعم كما قال الأخ DOWNLOADER ..

جدول واحد يكفي للكل فقط التغيير ما بينهم في صفوف الرتبة والصلاحيات ...

تحياتي :happy:

1

رجعت ومازال الفريق خاملاَ  :( 


 


abPuw.1.gif

#5

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

اخواني الكرام شكراً جزيلاً لكم على مساعدتي في الكيفية

بصراحة أكثر شي كنت مفكر فيه هو إنشاء جدول واحد بالفعل ...

----------

بارك الله فيكم

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…