مهرداد
4 سال پیش توسط مهرداد مطرح شد
1 پاسخ

ساختار دیتابیس کد تخفیف در لاراول

سلام دوستان من میخام کد تخفیف رو بصورتی داشته باشم که بتونم به یک یا چند کاربر مشخص و یا یک یا چند محصول و همچنین یک یا چند دسته بندی تخفیف در نظر بگیریم حالا سوالم اینه کدوم ساختار مناسب تره ساختار چند به چند مناسب کارمه یا پولی مورفیک از این دو ساختار کدومش مناسب تره و ساختار بهتری شما در نظر دارید؟

        Schema::create('coupons', function (Blueprint $table) {
            $table->id();
            $table->string('title');
            $table->string('code')->unique();
            $table->integer('amount');
            $table->boolean('is_general')->default(0);
            $table->unsignedInteger('quantity')->nullable();
            $table->enum('type'  , ['fixed' , 'percent']);
            $table->enum('status'  , ['enable' , 'disable'])->default('disable');
            $table->text('description')->nullable();
            $table->unsignedInteger('couponable_id');
            $table->string('couponable_type');
            $table->dateTime('start_at');
            $table->dateTime('expired_at');
            $table->timestamps();
        });
    public function up()
    {
        Schema::create('coupons', function (Blueprint $table) {
            $table->id();
            $table->string('title');
            $table->string('code');
            $table->integer('amount');
            $table->boolean('is_general')->default(0);
            $table->unsignedInteger('quantity')->nullable();
            $table->enum('type'  , ['fixed' , 'percent']);
            $table->enum('status'  , ['enable' , 'disable'])->default('disable');
            $table->text('description')->nullable();
            $table->dateTime('start_at');
            $table->dateTime('expired_at');
            $table->timestamps();
        });

        Schema::create('coupon_user', function (Blueprint $table) {
            $table->unsignedBigInteger('coupon_id');
            $table->unsignedBigInteger('user_id');

            $table->foreign('coupon_id')->references('id')->on('coupons')->onDelete('CASCADE');
            $table->foreign('user_id')->references('id')->on('users')->onDelete('CASCADE');
        });

        Schema::create('category_coupon', function (Blueprint $table) {
            $table->unsignedBigInteger('category_id');
            $table->unsignedBigInteger('coupon_id');

            $table->foreign('category_id')->references('id')->on('categories')->onDelete('CASCADE');
            $table->foreign('coupon_id')->references('id')->on('coupons')->onDelete('CASCADE');
        });

        Schema::create('coupon_course', function (Blueprint $table) {
            $table->unsignedBigInteger('coupon_id');
            $table->unsignedBigInteger('course_id');

            $table->foreign('coupon_id')->references('id')->on('coupons')->onDelete('CASCADE');
            $table->foreign('course_id')->references('id')->on('courses')->onDelete('CASCADE');
        });
    }

@hesammousavi
@ali.bayat
@mhyeganeh
@khanzadimahdi


ثبت پرسش جدید
علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 4 سال پیش مطرح شد
0

رابطه چند به چند پالی مورفیک برای اینکار مناسبه

https://laravel.com/docs/8.x/eloquent-relationships#many-to-many-polymorphic-relations


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

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