Awmx
3 سال پیش توسط Awmx مطرح شد
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$ دریافت کنم


ثبت پرسش جدید
رضا جهانگیر
تخصص : Full-Stack Developer
@rezajahangir 3 سال پیش مطرح شد
1

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

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

مدل Coin

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

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

$user->coin->balance

موفق باشید.


Awmx
@awmx 3 سال پیش مطرح شد
0

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


حسن حکمتی
تخصص : برنامه نویس وب و بلاکچین
@hekmati 3 سال پیش مطرح شد
0

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


Awmx
@awmx 3 سال پیش مطرح شد
0

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


حسن حکمتی
تخصص : برنامه نویس وب و بلاکچین
@hekmati 3 سال پیش آپدیت شد
0

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


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

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