PDA

View Full Version : سوال: پیشنهاد شما درباره طراحی قسمتی از بانک من (فوری)



Mori Bone
پنج شنبه 25 اردیبهشت 1393, 21:39 عصر
سلام و درود
سلام من یه جدوله دانش آموزان، یه جدوله معلمان دارم. هر کدوم از این جدول ها 10،11 تا فیلد داره. حالا میخوام برا حساب کاربری ازتون مشورت بگیرم.
من خودم اینجوری درست کردم.



تمام اطلاعات مربوط به حساب کاربری هر یک از معلمان و دانش آموزان در جدول مربوطه(معلمان یا دانش آموزان) ذهیره میشه اعم از رمز عبور، فعال یا غیرفعال بودن حساب و 2 3 تا فیلد دیگه.

برا لاگین هم میام هر کدوم از این جداول رو چک میکنم.

یه روش دگ هم هس که می خوام بدونم شما تایید می کنید یانه؟

اطلاعات مربوط به معلم یا دانش آموز اعم از کدپرسنلی،تاریخ تولد، نام و نام خانوادگی و .. رو داخل جدول معمان یا دانش آموزان ذخیره کنم. وقتی هر یک از اینها ثبت نام کرده اند،اطلاعات داخله جدوله ثبت نام با فیلد هایی که بالا گفتم + کد ثبت نام ذخیره بشه.

Mori Bone
پنج شنبه 25 اردیبهشت 1393, 21:55 عصر
مرگه من جواب بدن گیرم

mhsmity
پنج شنبه 25 اردیبهشت 1393, 22:42 عصر
سوال رو خیلی بد پرسیدن
چطوری متوجه بشم.


پس شما دو جدول دراین جدول 1 و جدول 2

به نظر من این کار زیاد منطقی نیست.
شما یه جدول کاربران تریف کنید با اعمال مدیریتی کاربران مثل حدف و اضافه کردن کاربر جدید، تغییر کلمات عبور ، سطح دسترسی و هر جیز که لازمه

به نظر اگه نیاز نباشه که هر معلم و دانش آموز کاربر نرم افزار باشه

اکه هر معلم و هر دانش آموز کاربر نرم افزار هستش
یه جدول کاربران رو تعریف کنید





.......


سطح دسترسی


رمز عبور


نام کاربری


نوع


آدیدی معلم یا دانش موز


آدیدی
















معلم


2


1
















دانش آموز


2


2
















معلم


3


3



به نظر من جدول کاربران خود رو این طوری طراحی کنید
هر وقت یه معلم یا دانش آموزجدید تریف میشه کدهای اینزت این جدول هم فراموش نشه.

Mori Bone
پنج شنبه 25 اردیبهشت 1393, 22:45 عصر
پس شما روش خودمو پیشنهاد نمیدید. یعنی اطلاعات کاربری و اطلاعات شخصی داخل یک جدول نباشه؟

mhsmity
پنج شنبه 25 اردیبهشت 1393, 22:50 عصر
پس شما همون روش خودمو پیشنهاد میدید. یعنی اطلاعات کاربری و اطلاعات شخصی داخل یک جدول باشه؟
ای بابا من کی گفتم همه تو یک جدول دارم میگم
جدول 1 معلمان
جدول 2 دانش آموزان
جدول 3 کاربران


اگه جداول، دو موجودیت معلم و دانش آموز زیاد باهم تفاوت ندارن مثلا اختلافشون در حد یکی و یا حالا 3 تا فیلده یه جدول طراحی کن و با توجه به ستون نوع موجودیت(معلم یا دانش آموز) در این جدول بیا و از فیلد های مورد نیازت استفاده کن .

اما اگر اختلاف فیلد ها خیلی زیاده مثلا 10 یا 15 تا خوب این جای خالی زیادی رو میگیره و افزونگی داره ، به نظر من زیاد خوب نیست.


یا اگه خواستی جدول شماره 3 رو به انتهای
جدول 1 معلمان
جدول 2 دانش آموزان
اضافه کن بد با توجه به نوع که معلم هست یا دانش آموز جدول درست رو جهت واکشی اطلاعات انتخاب کن

Mori Bone
پنج شنبه 25 اردیبهشت 1393, 22:55 عصر
ای بابا من کی گفتم همه تو یک جدول دارم میگم
جدول 1 معلمان
جدول 2 دانش آموزان
جدول 3 کاربران


اگه جداول، دو موجودیت معلم و دانش آموز زیاد باهم تفاوت ندارن مثلا اختلافشون در حد یکی و یا حالا 3 تا فیلده یه جدول طراحی کن و با توجه به ستون نوع موجودیت(معلم یا دانش آموز) در این جدول بیا و از فیلد های مورد نیازت استفاده کن .

اما اگر اختلاف فیلد ها خیلی زیاده مثلا 10 یا 15 تا خوب این جای خالی زیادی رو میگیره و افزونگی داره ، به نظر من زیاد خوب نیست.


یا اگه خواستی جدول شماره 3 رو به انتهای
جدول 1 معلمان
جدول 2 دانش آموزان
اضافه کن بد با توجه به نوع که معلم هست یا دانش آموز جدول درست رو جهت واکشی اطلاعات انتخاب کن

ببخشید متن سوالمو عوض کردم!!!:چشمک:

سعید صابری
پنج شنبه 25 اردیبهشت 1393, 22:56 عصر
به نظر من بستگی به تعداد داره اگه زیاد نیست یک جدول برای همه اش کافیه.نهایتش اینه که چند تا فیلد اضاف میشه برای شناسایی

Mori Bone
پنج شنبه 25 اردیبهشت 1393, 22:58 عصر
خوب معلم میاد اطلاعات شخصی شو وارد میکنه تو جدوله معلما و من اطلاعاته کاربری شو وارد میکنم تو جدول account ها خوب پس الان فیلدی که شما اسمشو "آدیدی معلم یا دانش موز" گرفتی کلید خارجی میشه توی جدوله معلما.
من بخوام اطلاعات کاربری دانش آموزان رو وارد کنم توی این جدول باد این فیلد توی جدوله دانش آموزان کلید خارجی باشه؟

یا اصلا این فیلد رو کلید خارجه نکنم/؟

majid1605
پنج شنبه 25 اردیبهشت 1393, 23:31 عصر
اگه تعداد زیاد نیست کلا یک جدول واسه کاربران (معلمان و دانش آموزان ) کافیه به شرطی که اون اطلاعات شخصی اجباری باشه همه فیلدهاش
اگه قراره بعضی قسمت ها رو معلم دسترسی داشته باشه و دانش آموزان نه خب یه جدول هم واسه سطوح دسترسی میخوای

اما اگه اطلاعات شخصی اجباری نیست یا تعداد اطلاعاتی که میخوای بگیری زیاد واختلاف فیلد ها خیلی زیاده ، اطلاعات شخصی رو جدا کن
دکل نیاز نیست دوتا جدول یکی واسه معلم یکی دانش آموز در نظر بگیری یک فیلد رو اختصاص میدی واسه مشخص کردن معلم و دانش آموز بودن
همینی که دوستمون گفتن

اگه جداول، دو موجودیت معلم و دانش آموز زیاد باهم تفاوت ندارن مثلا اختلافشون در حد یکی و یا حالا 3 تا فیلده یه جدول طراحی کن و با توجه به ستون نوع موجودیت(معلم یا دانش آموز) در این جدول بیا و از فیلد های مورد نیازت استفاده کن .

اما اگر اختلاف فیلد ها خیلی زیاده مثلا 10 یا 15 تا خوب این جای خالی زیادی رو میگیره و افزونگی داره ، به نظر من زیاد خوب نیست.

Mori Bone
پنج شنبه 25 اردیبهشت 1393, 23:33 عصر
این جدول جساب کاربری شد که کلید خارجی هم نداره.درسته؟ لطفا به تاپیک قبلی هم جواب دهید.
119085
دوتا جدوله دگ هم دارم که یکیش واسه اطلاعاته معامه و یکی برا دانش آموز

majid1605
پنج شنبه 25 اردیبهشت 1393, 23:34 عصر
یه فیلد دیگه اضافه کن واسه کلید هش شده واسه پسورد و یکی ایمیل البته اگه سایته
اخرین فیلد واسه چیه؟

Mori Bone
پنج شنبه 25 اردیبهشت 1393, 23:39 عصر
اخرین فیلد واسه چیه؟
آخرین فیلد واسه اینه که چون مدیر هم میتونه اطلاعان معلم رو وارد کنه پس یه بولین گذاشتم اگه true بود معلم بعد از اینکه وارد سایت شد و لاگین شد ، بلافاصله رمز رو عوض کنه. که تیک زدن این گزینه دسته مدیره


یه فیلد دیگه اضافه کن واسه کلید هش شده واسه پسورد و یکی ایمیل البته اگه سایته
من هش و مشو و امنیت خیلی (اصلا) بلد نیستم. اگه خودتون همین جا یه توضیح مختضر درباره هش بدبد که دستتونو می بوسم اگر که نه یه منبع عالی پیشنهاد بدید

majid1605
پنج شنبه 25 اردیبهشت 1393, 23:58 عصر
آخرین فیلد واسه اینه که چون مدیر هم میتونه اطلاعان معلم رو وارد کنه پس یه بولین گذاشتم اگه true بود معلم بعد از اینکه وارد سایت شد و لاگین شد ، بلافاصله رمز رو عوض کنه. که تیک زدن این گزینه دسته مدیره

فیلد بیخودیه

من هش و مشو و امنیت خیلی (اصلا) بلد نیستم. اگه خودتون همین جا یه توضیح مختضر درباره هش بدبد که دستتونو می بوسم اگر که نه یه منبع عالی پیشنهاد بدید
خلاصه میگم بقیه اش رو برید سرچ کنید
فرض کن یه نفر به فیلد پسورد تووی دیتابیس دسترسی پیدا کنه یعنی بتونه اطلاعاتش رو بخونه وقتی پسورد رو هش نشده درج کنی(مثلا 123456:لبخند:) تووی دیتابیس خیلی راحت پسورد طرف میفته دستش حالا اگه همین پسورد 123456 رو هش شده اش رو بزاری تووی دیتابیس برفرض با الگوریتم sha256 میشه 98c0294731bf4627fa68cc44d4821758042ec68d082800931b 60346ac66feff4
64 کارکتر باید باشه حالا بخوای محکم کاری بکنی یدونه کلید هم واسش در نظر میگیری میزاری تنگش اونم یه کلید یونیک واسه هر کاربر اونم یه چیزی شبیه اینه
bafb02f7a641c3a7525e325453ad85768567efe9fd0c4d3a8e e5698fce
به این یکی معمولا میگن salt فکر کن 123456 چه بلایی سرش اومده

در ضمن برو حتما مباحث امنیتی رو مطالعه کن

Mori Bone
جمعه 26 اردیبهشت 1393, 00:01 صبح
شما تو پست قبلی گفتید یه فیلد دگ بهش اظفا کن برا هش
پس دو تا فیلد داریم تو یکیش رمزعبور هش شده و یکی هش نشده. پس اگه کسی دسترسی پیدا کرد که فرقی نداره


یه فیلد دیگه اضافه کن واسه کلید هش شده واسه پسورد و یکی ایمیل البته اگه سایته

majid1605
جمعه 26 اردیبهشت 1393, 00:35 صبح
یه فیلد دیگه اضافه کن واسه کلید هش شده واسه پسورد و یکی ایمیل البته اگه سایته
فیلد پسورد رو خودتون گذاشتید فقط محتویاتش میشه پسورد هش شده و یکی هم واسه کلید
ایمیل هم فراموش نشه

ببین این یه نمونه از هش کردن پسورد با زبان php


$hashPassword = hash('sha256' ,$Password.$UniqueSalt);
تووی جدول یکی hashPassword ذخیره میشه یکی UniqueSalt جفتشون دوتا رشته نامربوط هستند مثل همون دوتای بالا
خود $UniqueSalt هم می تونه توسط یه تابع به صورت رندوم تولید بشه که هیچ کاربری با کاربر دیگه ایی نه پسورد هش شده نه کلیدش یکی باشه

Mori Bone
جمعه 26 اردیبهشت 1393, 00:36 صبح
فیلد پسورد رو خودتون گذاشتید فقط محتویاتش میشه پسورد هش شده و یکی هم واسه کلید
ایمیل هم فراموش نشه

ایمیل رو من داخله جدول معلما یا دانش آموزا گذاشتم

majid1605
جمعه 26 اردیبهشت 1393, 00:41 صبح
پست قبل رو ویرایش کردم
در ضمن معمولا ایمیل جزء حساب کاربر محسوب میشه شما ممکنه در آینده برحسب نام کاربری بخواید رمز عبور یه نفر رو اگه فراموش کرده باشه بهش بدید