راکت

مدیریت موجودی های کاربر

5 پاسخ

سلام دوستان
ما سه تا مدل داریم (کاربر − ارز ها − موجودی ها)
ساختار تیبل موجودی ها به این صورت:

            $table->id();
            $table->unsignedBigInteger('user_id');
            $table->unsignedBigInteger('coin_id');
            $table->string('symbol');
            $table->decimal('balance')
            $table->timestamps();

توی صفحه هم که قراره موجودی های کاربر رو نمایش بده لیست ارزها رو توی یک جدول نمایش دادم و یک ستون هم برای نمایش موجودی ارز قرار دادم
فرض میکنیم به این صورت لیست ارزها نمایش داده میشه:

        foreach ($coins as $coin) 
            <p>$coin->name</p>
            <p>$coin->user->balance</p>
        endforeach

روابط بین جداول باید به چه صورت باشه که بتونم موجودی ارز کاربر رو به این صورت coin->user->balance$ دریافت کنم

ثبت پرسش جدید

پاسخ‌ها

5
رضا جهانگیر
رضا جهانگیر
@rezajahangir

تخصص: Full-Stack Developer

سلام به شما دوست عزیز.
با توجه به توضیحاتتون رابطتتون باید یک به یک باشه، یعنی هر کاربر یه موجودی داره و هر موجودی مربوط به یه کاربر میشه، پس
مدل User

public function coin() {
    return $this->hasOne(Coin::class);
}

مدل Coin

public function user() {
    return $this->belongsTo(User::class);
}

و در اخر کد شما باید به صورت زیر باشه.

$user->coin->balance

موفق باشید.

Awmx
Awmx
@awmx

ممنون از پاسختون
تنها یک موجودی نداره منظور اینه هر کاربر برای هر ارز یک موجودی داره یعنی اگه ۱۰ تا ارز داشته باشیم در جدول موجودی ها ده ردیف مربوط کاربره
باز هم این رابطه درسته؟
@rezajahangir

شاید پاسخ شما همین‌جا باشد

حسن حکمتی
حسن حکمتی
@hekmati

تخصص: برنامه نویس وب و بلاکچین

سلام
این روابط بر اساس نوع استفاده شما ممکنه متفاوت باشه، اگر ارزهای مورد بحث از نوع فیات باشند ساختار جدول شما درسته فقط باید توسعه داده بشه و می تونید هم از روابط many-to-many استفاده کنید هم polymorphic اما اگر ارز دیجیتال هم بخشی از هدف شماست که این ساختار پاسخ گو نیست.

Awmx
Awmx
@awmx

@hekmati
بله ارزهای دیجیتال هستش
چه تفاوتی دارن؟

حسن حکمتی
حسن حکمتی
@hekmati

تخصص: برنامه نویس وب و بلاکچین

ببینید سیستم های مالی هم به صورت متمرکز هم به صورت غیرمتمرکز قابل پیاده سازی هستند از اونجایی که شما توضیح مناسبی برای درک مکانیزم کارتون ارایه ندادید قابل تشخیص نیست که این سیستم از چه ساختاری پیروی میکنه اما به صورت پیش فرض ما در نظر میگیرم که حتی اگر متمرکز کار می کنید یک ارتباط موثر با دیفای دارید پس سیستم شما باید بتونه از توکن های مختلف پشتیبانی بکنه حالا چون توکن ها بر اساس قراردادهای هوشمند و استانداردهای مختلفی روی بلاکچین پیاده سازی شدن مشهوده که سیستم معرفی شده شما از ظرفیت لازم برای تعامل با این سیستم برخوردار نیست.
برای مثال: دیتابیس شما شامل یک تیبل هست که symbol و balance رو ذخیره میکنه این چیزی است که قراره کاربر ببینه مثلا موجودی usdt خودش رو مشاهده بکنه اما شما سمت بک اند باید این رو در نظر بگیرید که این usdt روی شبکه ترون (trc20) واریز شده یا روی شبکه اتریوم (erc20). در واقع کاربر شما ممکنه روی شبکه های متنوعی واریز یا برداشت داشته باشه اما در سمت فرانت باید بدون در نظر گرفتن پروتکل انتقالی یک موجودی خالص در اختیار کاربر بگذارید. تیبل شما این کار رو انجام نمیده.

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

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