بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

ترفند جالب استفاده از ارایه در فیلد دیتابیس

مدیریت گفتگو
مرتضی مرادی 10 سال پیش
آخرین تغییر: 10 سال پیش

با سلام دوستان من یه فایل جیسون دیدم که در داخل یک فیلد از دیتابیس یه ارایه ای از اطلاعات رو قرار داده بود و فایل جیسون به این صورت است :


 
همونطور که می بینید در فیلد url سه آرایه وجود دارد
 
می خواستم بپرسم چطوری اینکار رو انجام داده است لطفا راهنمایی فرمایید
 
چطوری از دیتابیس همچین فایل جیسونی گرفته شده است

نظرات

کاری نداره که شما مثلا اعداد 1,2,5,6,8,9 رو در یه فیلد ذخیره کنه. بعد با تابع explode در php و تابع split در اندروید خیلی راحت بر اساس کاراکتر "," تبدیل به یه آرایش میکنی.حتی میتونی پیچیده ترش هم بکنی.

پاسخ‌ها 2

Criss 10 سال پیش

نمونه کد :

 <?
$data0['name'] = 'name';
$data0_1['small'] = 'small';
$data0_1['medium'] = 'medium';
$data0_1['large'] = 'large';
$data0['url'] = $data0_1;
$data0['timestamp'] = 'time 00 0000';
$output[] = $data0;

echo json_encode($output);

?>

خروجی :

 [{
"name":"name",
"url":{
"small":"small",
"medium":"medium",
"large":"large"
},
"timestamp":"time 00 0000"
}

]

 طراحی هر سطر از دیتابیس رو یا توجه به آرایه ها بسازید ، حتی ساده تر هم میتونید پیش برید مهم اطلاعات خروجی بصورت جیسون هست که قرار مورد استفاده قرار بگیره ، مثلا ممکنه نیاز نباشه حتما url یک آرایه باشه شامل سه مقدار و میتونه این سه مقادیر در کلید های اصلی آرایه باشه , یا ممکنه این اطلاعات از ترکیب چندین Table با هم بوجود اومده باشه از روی خروجی  Json نمیشه ساختار دیتابیس رو فهمید

نظرات

مرتضی مرادی 10 سال پیش
خیلی ممنون تشکر از پاسخ شما تونستم با کمی تغییرات خیلی پیچیده تر و کاربردی ترش هم بکنم.
kmelodi 10 سال پیش

سلام:

به نظر من بصورت کلی، ذخیره جیسون در دیتابیس و اسپلیت دیتای اون کار درستی نیست.

چون اینطوری نمیشه کوئری زد و اصل دیتابیس رو زیر سوال بردیم( هرچند روی متن ها هم میشه کوئری زد، ولی سرعت رو کاهش میده در دیتای زیاد).

به جای اینکار میشه از چند جدول و برقراری رابطه بین این جدول ها به نتایج خیلی بهتر و سریع تری دست پیدا کنین.

 

نظرات


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .