محمد قربانی
4 سال پیش توسط محمد قربانی مطرح شد
6 پاسخ

طراحی دیتابیس گفتگو با چند گارد

سلام دوستان؛خسته نباشید،
من از مولتی اث استفاده کردم و چند گارد (ادمین،کاربر،مشتری) ایجاد کردم، حالا میخوام بین اینا یه سیستم گفتگو ایجاد کنم، حالا میخواسم نظر دوستان رو در مورد رابطه هاش بپرسم،
چیزی که من نوشتم به این شکل هست که:
هر گارد میتونه چندین گفتگو داشته باشه و هر گفتگو هم میتونه چندین پیام داشته باشه،به این شکل

/
      relation of user with sender conversation.
      @return MorphOne
     /
    public function sender()
    {
        return $this->morphMany(Conversation::class,'senderable');
    }

    /
      relation of user with receiver conversation.
      @return MorphOne
     /
    public function receiver()
    {
        return $this->morphMany(Conversation::class,'receiverable');
    }

    /
      return relation of user with conversation.
      @return MorphOne
     /
    public function conversations()
    {
        return $this->sender() ?? $this->receiver();
    }

 /
      relation of conversation with user_type:admin,user,customer
      @return MorphTo
     /
    public function senderable()
    {
        return $this->morphTo();
    }

    /
      relation of conversation with user_type:admin,user,customer
      @return MorphTo
     /
    public function receiverable()
    {
        return $this->morphTo();
    }

    /
      relation of conversation with message.
      @return HasMany
     /
    public function messages()
    {
        return $this->hasMany(Message::class);
    }

حالا میخوام بدونم به این شکل بهینه هست؟یا روش بهتری کسی انجام داده،ممنون میشم راهنمایی کنید
@hesammousavi
@ali.bayat
@Alimotreb
@juza66
@milad
@khanzadimahdi


ثبت پرسش جدید
حسام موسوی
تخصص : طراح و برنامه نویس
@hesammousavi 4 سال پیش مطرح شد
1

سلام در قدم اول بنظرم این یک کار غیرضروری و بی مورد بود که از mulit auth استفاده کردید چون فقط باعث افزایش پیچیدگی برنامه میشه، حتی در آینده .
در مورد دوم اگر تصمیم به این کار بگیرید چیزی که مطرح کردید درسته ولی هر ویژگی که بخواید اضافه کنید باید به شکل جدا جدا برای هر گارد تعریف کنید .


محمد قربانی
تخصص : برنامه نویس لاراول
@mohammadghorbani1992 4 سال پیش مطرح شد
0

@hesammousavi

ممنون اقای موسوی،خو اخه فیلدهایی که هست واسه هر کاربر متفاوت میشه،اونوقت تعداد زیادی فیلدباید تعریف بشه که واسه هرکدوم پوشش داده بشه،ینی به نظر شما از همون یه گارد استفاده بشه؟چون این سیستم نیاز به اپ اندروید هم داره،و واسه همون میخواستم جدا باشه هر کاربر


حسام موسوی
تخصص : طراح و برنامه نویس
@hesammousavi 4 سال پیش مطرح شد
1

خوب نیاز به اپ اندروید داشته باشه، چه مشکلی ایجاد میشه ؟
اگر فیلد متفاوت هر کدوم دارن جدول متفاوت میتونید درست کنید و رابطه one to one با اون اطلاعات
معمولا multi auth تنها باعث پیچیدگی زیاد میشه چون چیزی که شما دارید فکر نکنم نیازی بهش باشه اصلا


محمد قربانی
تخصص : برنامه نویس لاراول
@mohammadghorbani1992 4 سال پیش مطرح شد
0

@hesammousavi

ممنون پاسختون،میشه یه مثالی بزنید که کجاها بهتره از multi auth استفاده بشه؟


حسام موسوی
تخصص : طراح و برنامه نویس
@hesammousavi 4 سال پیش مطرح شد
1

نمیشه به مثال خاصی اشاره کرد
ولی ببینید هر زمان که فکر میکنید انقدر برنامه‌اتون بزرگه که نیاز به دوتا جدول مثلا برای کاربران و کافرمایان دارید و هر کدوم ممکنه جداول مختلفی داشتنه باشن که بهشون مرتبط هست اونوقت که میشه گفت میشه از mutli auth استفاده کرد . ولی در اکثر پروژه‌ها واقعا بهش نیازی نیست .


محمد قربانی
تخصص : برنامه نویس لاراول
@mohammadghorbani1992 4 سال پیش مطرح شد
0

@hesammousavi
اونوقت به این شکل بهتره یه فیلد type تعریف یشه واسه جدا کردنشون؟یا از Acl استفاده بشه؟چون از acl واسه مدیریت استفاده کردم
(ببخشید سوالاتم زیاد شد:))


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام