آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

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

مرتضی مرادی  9 سال پیش  9 سال پیش
0 0

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


 
همونطور که می بینید در فیلد url سه آرایه وجود دارد
 
می خواستم بپرسم چطوری اینکار رو انجام داده است لطفا راهنمایی فرمایید
 
چطوری از دیتابیس همچین فایل جیسونی گرفته شده است
+2 0
کاری نداره که شما مثلا اعداد 1,2,5,6,8,9 رو در یه فیلد ذخیره کنه. بعد با تابع explode در php و تابع split در اندروید خیلی راحت بر اساس کاراکتر "," تبدیل به یه آرایش میکنی.حتی میتونی پیچیده ترش هم بکنی. (9 سال پیش)
 برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال 
Criss  9 سال پیش
+3 0

نمونه کد :

 <?
$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 نمیشه ساختار دیتابیس رو فهمید

0 0
خیلی ممنون تشکر از پاسخ شما تونستم با کمی تغییرات خیلی پیچیده تر و کاربردی ترش هم بکنم. (9 سال پیش)
پاسخ به سوال 
kmelodi  9 سال پیش
+1 0

سلام:

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

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

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

 


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