coarad supp
5 سال پیش توسط coarad supp مطرح شد
3 پاسخ

جدول سابقه پرداخت

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

حالا میخوام جدول و فیلداش و روابطش رو کمک کنید، چون سر در گم شدم چطوری اینو انجام بدم، ممنون میشم

$table->bigIncrements('id');
            $table->unsignedBigInteger('gateway_id');// رابطه با جدول تراکنش بانک
            $table->morphs('payer');                    // پرداخت کننده
            $table->morphs('recipient');                // دریافت کننده
            $table->morphs('payable')->nullable();// واسه چه موردی
            $table->string('price');            // مبلغ پرداخت شده
            $table->string('balance')->nullable();//موجودی حساب
            $table->timestamps();

            $table->foreign('gateway_id')->references('id')->on('gateway_transactions')
                ->onDelete('cascade')->onUpdate('cascade');

@hesammousavi
@elyasbeshkani
@ali.bayat
@juza66
@rezajashnsaz0011
@milad


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

@coaradsupp

به نظر من میشه از مدل های Payment و Account و Transaction استفاده کرد

  • هر تراکنش متعلق به یک Payment هست و هر Payment متعلق به یه اکانت.
  • و از طرف دیگه هر Account میتونه چندین پرداخت داشته باشه; و هر پرداخت متعلق به یک تراکنش هست.

بدین ترتیب:

  • میشه پرداخت های مربوط به یه اکانت رو داشت.
  • میشه تراکنش های مربوط به یک پرداخت رو درآورد.
  • و در نهایت به تراکنش های کلی یک اکانت هم دسترسی دارید.

بطور کلی میشه یک رابطه یک به یک بین Transaction و Payment
و یک رابطه یک به چند بین Account و Payment

Relationships Diagram


توجه داشته باشید این یک روش هست و ممکنه شما روش های دیگه ای رو برای ساختار اپلیکیشن تون در نظر گرفته باشید.

بسته به ساختار کلی اپلیکیشن و نیاز های نهایی برای ساخت کوئری ها، این روش ها می‌تونند تغییر کنند و هیچ کدوم بهتر از دیگری نیستند. در واقع هر کدوم مورد استفاده خودشون رو دارند.

پیروز باشید.


coarad supp
تخصص : برنامه نویس لاراول
@coaradsupp 5 سال پیش مطرح شد
0

@ali.bayat
ممنون از پاسختون، الان این مایگریشن من با چیزی که شما دادین یکیه حدودا، فقط از morph استفاده شده، اونوقت برای پرداخت های با کیف پول و انلاین یه فیلد دیگه اضافه بشه که مشخص کنه این پرداخت با چی بوده، به نظرتون خوبه همین دیگه؟


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

اگر داده های مورد نیازتون رو دریافت کنید، بله دیگه


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

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