ব্যবহারকারী এবং গোষ্ঠীগুলির সাথে একটি ডাটাবেস তৈরির জন্য একটি মৌলিক মডেল কী?


9

আমি কোনও ওয়েবসাইটের জন্য প্রাথমিক সুরক্ষা ব্যবস্থার সর্বোত্তম উপায় সন্ধান করার চেষ্টা করছি। আমি জানি আমি ব্যবহারকারী এবং গোষ্ঠী চাই।

আমি ভেবেছিলাম আমার থাকতে হবে:

user_table
user_id
user_name
...

group_type
group_id
group_name
parent_id
...

group_table
id
user_id
group_id

প্রথমটি ব্যবহারকারী, দ্বিতীয়টি গ্রুপ এবং দ্বিতীয় তৃতীয়টি মধ্যস্থতাকারী টেবিল যা দুটি সংযুক্ত করে conn এক ব্যবহারকারীর অনেক গ্রুপ রয়েছে।

এই শব্দ ঠিক আছে?


নাম ছাড়া অন্য। আপনার GROUP_TYPEটেবিলটির নামকরণ করা উচিত GROUPবা অনুরূপ কিছু GROUP_TABLEহওয়া উচিত এবং আপনার ব্যবহারকারী এবং গোষ্ঠী উভয়কেই উল্লেখ করা উচিত, যা এটি লিঙ্ক করছে as
অ্যাডাম মাশ্চ

@ অ্যাডাম গ্রুপ_ টেবিলটি ইউজার_আইডি এবং গ্রুপ_আইডি দিয়ে তা করে না?
জননি

4
@ অ্যাডামমুছ এর নাম রাখা উচিত নয় কারণ এটি একটি সংরক্ষিত শব্দ। টেবিল এবং কলামগুলি কখনই সংরক্ষিত শব্দের নামকরণ করা উচিত নয়
ফিলি

1
@ ফিলিল তাতে সম্মত হয়েছেন। আপনি পাশাপাশি একটি টেবিল SELECTএবং একটি ক্ষেত্রের নাম FROMরাখতে পারেন যাতে আপনার কাছে এমন কোনও প্রশ্ন থাকতে পারেSELECT [FROM] FROM [SELECT]
জেএনকে

2
বেসিক সত্তাগুলিকে 'অ্যাপ_উজার' এবং 'অ্যাপ_রোল' এর মতো কিছু বলার চেষ্টা করুন
কনসার্নড

উত্তর:


17

এটির মডেল করার The তিহ্যগত উপায়টি ভূমিকা-ভিত্তিক সুরক্ষা নামে একটি প্যাটার্ন ব্যবহার করছে ।

ধারণাটি কেবলমাত্র ব্যবহারকারীদের গ্রুপ নয়, তবে অনুমতিগুলির গ্রুপও রয়েছে। নিদর্শনটি কীভাবে দেখায় তা এখানে:

ভূমিকা ভিত্তিক সুরক্ষা ERD

নোট করুন যে আপনি টেবিলের নামগুলির জন্য সংরক্ষিত শব্দগুলি এড়াতে চান, তাই আপনার টেবিলগুলির ডায়াগ্রামের মতো ঠিক তেমন নাম রাখবেন না।

এটি যেভাবে কাজ করে তা হ'ল আপনার গোষ্ঠী বা রোলগুলির কেবল তাদের অর্পিত ব্যবহারকারীর একটি তালিকাই নয় তবে তাদের অর্পিত অনুমতিগুলির একটি তালিকা রয়েছে। এটি আপনাকে দু'জনকে টেবিল-ড্রাইভ করতে দেয় যা আপনি কি করতে পারেন তা করতে পারেন, তবে আপনি যদি আমাকে অনুসরণ করেন তবে তারা কী করতে পারে তাও।


তবে যদি আমার ব্যবহারকারীর ম্যানেজারের মতো কিছু ভূমিকা থাকে বা যাই হোক না কেন এবং কোনও কারণে একই ব্যবহারকারীর পাশাপাশি একটি নির্দিষ্ট অনুমতি প্রয়োজন হয় (যা সেই ভূমিকাতে নয়, বা অন্য কোনও ভূমিকাতে একা নেই)?
লেবি

@ লেভী - যদি তা হয়ে থাকে তবে এটি পরিচালনা করার একটি উপায় হ'ল "ববসের বিশেষ অনুমতি" এর মতো একটি বিশেষ ভূমিকা পালন করা , যা কিছুটা কুঁচকানো, তবে যতক্ষণ না আপনার খুব বেশি ব্যতিক্রম থাকে ততক্ষণ সমস্যাটি সমাধান হয়ে যায় like এই. এটি সম্ভবত আপনি যেটিকে পৃথক ব্যতিক্রম বলে মনে করেন তা আসলে একটি সূক্ষ্ম নতুন ভূমিকা হতে পারে যা আপনি বিবেচনা করেননি। বব ছাড়লে কী হয়? ববের প্রতিস্থাপনের জন্যও কি সেই ব্যতিক্রমী অনুমতি প্রয়োজন? যদি তা হয় তবে আসলে একজন সদস্যের সাথে আপনার ভূমিকা রয়েছে, ব্যতিক্রম নয়।
জোয়েল ব্রাউন

@ লেভি - আরেকটি সম্ভাবনা হ'ল আপনার ব্যক্তিগত এবং ভূমিকা অধিকারের মিশ্রণ থাকা দরকার। ROLEসেক্ষেত্রে আপনার টেবিলটি পৃথকগোষ্ঠী প্রকারে বিভক্ত করা যেতে পারে , যেখানে গ্রুপের ধরণটি অনেক সদস্যের শূন্য এবং স্বতন্ত্র টাইপের ঠিক এক সদস্য থাকে one আপনি কীভাবে এই কার্ডিনালিটির নিয়মগুলি প্রয়োগ করেন তা আপনার উপর নির্ভর করে। এটি আপনার ডাটাবেস স্কিমাতে ঘোষণামূলকভাবে করা যেতে পারে, সেক্ষেত্রে আপনাকে চিত্রের স্কিমাটি কিছুটা পরিবর্তন করতে হবে। অথবা আপনি অ্যাপ্লিকেশন যুক্তি ব্যবহার করতে পারেন, সেক্ষেত্রে আপনার স্কিমাটি এখনও উপরে চিত্রিত মতো দেখাচ্ছে।
জোয়েল ব্রাউন 13
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.