سلام دوستان ببخشید من یه سوال دارم کاربرانی که ادمین هستن توی سایت وقتی وارد پنل ادمین میشن یه بخش پروفایل داخل پنل ادمین دارن و کاربرانی هم user هستن مثل سایت راکت یه پروفایل کاربری براشون قرار داده شده برای اینکار که دوتا پنل داشته باشم یکی پروفایل ادمین توی داشبورد و یکی هم پروفایل کاربری توی سایت من باید دوتا جدول توی دیتابیسم داشته باشم ؟ کد زیر رو مثال میذارم ببینید باید دوتا جدول این مدلی داشته باشم یا یه دونه جدول کافیه؟
public function up()
{
Schema::create('profile_admins', function (Blueprint $table) {
$table->id();
$table->unsignedBigInteger('user_id');
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
$table->text('avatar');
$table->string('education');
$table->string('skills');
$table->timestamps();
});
}
public function up()
{
Schema::create('profile_users', function (Blueprint $table) {
$table->id();
$table->unsignedBigInteger('user_id');
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
$table->text('avatar');
$table->string('education');
$table->string('skills');
$table->timestamps();
});
}
نه اصلا لازم نیست
ادمین هم یه نوع کاربره فقط یه فیلد isadmin =1 مثلا داره
پس اصلا نیاز به یه جدول دیگه نیست
@mehrdadroshanraee69
همونطوری که دوستمون گفتن نیازی به دو جدول نیست . شما دوتا جدول کاملا یکسان دارید که فقط نوع کاربر داخلشون فرق میکنه . شما بیاید توی همون جدول یوزرتون فیلدی به نام is_admin یا مثلا level ایجاد کنید . اگر کاربر ادمین هست این فیلد is_admin مقدارش یک منطقی هست یا اگر از level استفاده کنید مقدارش admin هست . بعد راحت با استفاده از Gates & Policies و همچنین میدلور ها دسترسی هر کاربر رو به پروفایل نامربوطش کلا غیرفعال کنید .
باید همه موارد رو در نظر بگیرید چون طبیعتا حتی اگه دسترسی کاربر به پنل ادمین غیرممکن بود اما به روت مربوط به ادمین دسترسی پیدا کرد و متوجه شد که این روت مربوط به ادمین هست و دسترسی بهش محدود شده یجورایی از لحاظ امنیتی خوب نیستش. بنابراین بهتره مثلا اگر کاربر عادی روت ادمین رو فراخوانی کرد اروری بهش نشون بدین که حساسیت زا نباشه و اصلا متوجه نشه که این روت شاید 1% مربوط به ادمین هست . مثلا بجای ارور عدم دسترسی 404 رو نشون بدین .
موارد ریزی هست که قطعا خودتون متوجه خواهید شد اما سعی کردم با جزئیات کامل توضیح بدم .
موفق باشید.
ببینید سوال من اینه برای اینکه ادمین های توی پنل مدیریت پروفایل کاربری مشخصی داشته باشن و هر کاربر هم توی سایت میاد عضو میشه پروفایل کاربری خاص خودشو داشته باشه باید دوتا جدول برای پروفایل ایجاد کنم یا یه جدول کفایت میکنه؟
اخه مثلا جدول پروفایل ادمین ممکنه فیلد هایی داشته باشه که جدول پروفایل مربوط به یوزر نیاز به اون فیلد ها نداره بله من توی جدول یوزر خودم فیلد level هم مشخص کردم و تعیین کردم دیفالت user هست
@SobhanDadkhah
@miladparsi1070
@mehrdadroshanraee69
منظورتون رو از جدول پروفایل متوجه نمیشم
چه فیلدایی مثلا ادمینتون داره که یوزر نداره؟
شما برای پروفایل هم میتونید از همون جدول مربوط به یوزر ها استفاده کنید
اگه بلید پروفایل ادمین فرق میکنه، میتونید دوتا بلید یکی برای پروفایل کاربر یکیم برای ادمین ها داشته باشید
در هر صورت فکر میکنم نیاز به جدول اضافه نداشته باشید و هر اطلاعاتی که بخاید میتونید توی همون جدول یوزر ذخیره کنیدو نمایش بدین
اگر واقعا این دوتا جدولی که میخوای ایجاد کنی فیلد هاشون تفاوت های زیادی با هم دارن اون وقت دوتا جدول جدا منطقی میشه ... به هرحال بازم به نحوه کارکردنت و چیزی که میخوای پیاده کنی بستگی داره ... جدول کم تر دیتابیس سبک تر و ایجاد تغییرات در اینده راحت
تره
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟