جستجو در بخش : سوال جواب منابع اسلامی لغت نامه ها قوانین و مصوبات نقل قل ها
×

فرم ورود

ورود با گوگل ورود با گوگل ورود با تلگرام ورود با تلگرام
رمز عبور را فراموش کرده ام عضو نیستم، می خواهم عضو شوم
×

×

آدرس بخش انتخاب شده


جهت کپی کردن میتوانید از دکمه های Ctrl + C استفاده کنید
رویداد ها - امتیازات
در حال بارگذاری
×

رویداد ها - امتیازات

برای بررسی عملکرد فعالیت و امتیازات خود باید در وب سایت وارد باشید. در صورت عضویت از بخش بالای صفحه وارد شوید، در غیر این صورت از دکمه پایین، مستقیم به صفحه ثبت نام وارد شوید.

×
×
×

دلیل درخواست بستن پست

کلیه پست هایی که جنبه تبلیغاتی داشته، محتوای اسپم و بی مفهوم در این دسته قرار میگیرند. همچنین پست هایی که به منظور گرفتن بک لینک درج می شوند شامل این مورد هستند.
حاوی مفاهیم غیر اخلاقی، سیاسی و یا توهین آمیز. کلیه پست هایی که از نظر محتوایی نیاز به بررسی و یا حذف شدن دارند در این دسته قرار می گیرند.
محتوایی با عدم جزئیات کافی و مورد نیاز. کلیه پست هایی که منظور نویسنده به وضوح مشخص نیست و نیازمند توضیحات و جزئیات بیشتر می باشند در این دسته قرار می گیرند.
محتوایی بی ربط با موضوعیت سرفصل کلی. کلیه پست هایی که از منظر مفهوم و مضمون ارتباطی با عنوان اصلی سوال ندارند در این دسته قرار می گیرند.
محتوایی دلخواه و بر پایه سلیقه. کلیه پست هایی که یک پاسخ مشخص ندارند و متوانند چندین پاسخ متفاوت و صحیح داشته باشند که کاملا مبتنی بر نظر شخصی افراد هستند در این دسته قرار می گیرند.
محتوایی در حوزه خیلی وسیع. کلیه پست هایی که از نظر محتوایی در یک حوزه ی وسیعی قرار دارند و مشخصا به یک موضوع خاصی اشاره ندارند که پاسخدهی به آن ها مستلزم تشریح مفاهیمی کلی می باشند در این دسته قرار می گیرند.
قبلا در لام تا کام مطرح شده. پست هایی که دقیقا با همین محتوا و مضمون قبلا در وب سایت لام تا کام درج شده اند، با ذکر آدرس منبع تکراری با پست حال حاضر شامل این دسته هستند. تکراری است با:
به سایر دلایل، نیازمند به بررسی توسط مدیر. به هر دلیل غیری که پست را نیازمند بررسی توسط مدیر کرده، با ذکر دلیل، در این دسته قرار میگیرد.
ارسال رای بستن

ایجاد سرویس به همراه فیلد های اختصاصی


0
0
992

سلام دوستان یه پروژه سایت خدمات ارزی دارم که سرویس متفاوتی داره(+10)..بخاطر همین فکر نمیکنم این درست باشه برای هر سرویس مدل و کنترلر جدید ایجاد کنم چون تغریبا کدهاشونم مشابه هم هستن

حالا قصد دارم یه بخشی رو به عنوان ایجاد سرویس در پنل مدیریت که ادمین میتونه براش فیلدهای اختصاص تعریف کنه (تغریبا مثل افزونه های فرم ساز وردپرس) کدنویسی کنم

من 2 تیبل در نظر گرفتم یدونه برای سرویس و یدونه هم برای فیلدها که چنین ساختاری دارن

-Service
 -id
 -slug
 -name
 -description

,

-fields
 -id
 -service_id
 -field_name
 -field_type
 -field_placeholder
 -و...

البته یه ساختار دیگه هم برای فیلدها وجود داره

-fields
 -id
 -service_id
 -fields => ذخیره تمام فیلدها بصورت ارایه

بنظر شما این روش درسته؟ لطف میکنید اگه راهکار مناسب دیگه ای درنظر دارید راهنمایی کنید

تکنولوژی برنامه-نویسی لاراول
سوال شده در مجتبی دلشاد
275 امتیاز

2
لطفا یک مثال واقعی رو ذکر کنید تا سوال کامل مفهوم شود ــ علی رضایی در 5 سال قبل
1
راستش من سوالت رو درست متوجه نشدم که دقیقا میخوای چی کار کنی. ولی یک واقعیتی که در ساختار پایگاه داده ها وجود داره اینه که وقتی صحبت از یک ساختار داینامیک (مثلا فرمی که همیشه فیلد های یکسان نداره) به میان میاد، معمولا متخصصین بانک های اطلاعاتی، دیتابیس های no-sql رو پیشنهاد میدن. ــ سعید مرادی در 5 سال قبل

فرض کنید میخواید سرویسی با عنوان "خرید دلار پی پال" اضافه کنید خب حالا نیاز دارید که ایمیل پی پال کاربر رو زمان ثبت سفارش ازش دریافت کنید..پس ادمین زمان ایجاد اون سرویس, فیلدهایی که مورد نیاز هست رو تعریف میکنه که در فرم سفارش باید نمایش داده بشه...نمیدونم با whmcs کار کردید یا نه, توی اون سیستم هم میتونید برای محصولات فیلدهایی تعریف کنید که در فرم سفارش نمایش داده میشن @علی.قایینی@سعید.مرادی ــ مجتبی دلشاد در 5 سال قبل
1
خب ببینید همونطور که گفتم، شما باید برای ذخیره سازی فرم هایی که فیلد های متفاوتی دارن در زمان های مختلف یا برای کاربران مختلف، از دیتابیس های no-sql استفاده کنید. که یک استرینگ جی سان رو برای اون کاربر ذخیره می کنه. البته اینم بگم که خود mysql هم یک datatype داره با عنوان json. از اونم میتونی استفاده کنی و یک ستون id داشته باشی، و یک ستون user_id و نهایتا هم یک ستون form_content که نوعش json هست و تمام اون فیلدها رو شامل شده. ــ سعید مرادی در 5 سال قبل
1
میشه بفرمایید از چه دیتابیسی استفاده میکنید؟ به عبارتی، این ساختار تیبل هایی که فرمودید در چه دیتابیسی هستند؟ ــ ساناز رضایی در 5 سال قبل

@ساناز.رضایی mysql ــ مجتبی دلشاد در 5 سال قبل
1
اگر دانش کافی داری در رابطه با دیتابیس Oracle، من پیشنهادش میکنم. البته این نظر خود منم نیست حقیقتش توی یک شرکتی بود که مشابه مسئله شما رو داشتن و با CTOشون که صحبت کردن به این نتیجه رسیدن که از Oracle باید استفاده کنن در این موارد و از همه چی بهتره. ــ سروش قادری نسب در 5 سال قبل

500 کاراکتر باقی مانده

1 جواب

2

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

-id -service_id -fields => ذخیره تمام فیلدها بصورت ارایه

طبق ساختار دیتابیس بالا، شما قطعا یک جدول مجزا باید داشته باشید برای ذخیره سازی سرویس ها؛ که آیدی اون جدول، در جدول فوق با عنوان service_id نگهداری می شود.

و اما اصل موضوع که مرتبط با نگهداری و یا به عبارتی «ذخیره سازی فیلد هایی که همیشه ثابت نیستند»؛ باید بگم که از نظر من بهترین ساختار اینه که تمام اون فیلدها را در قالب یک رشته با فرمت JSON در ستون fields ذخیره سازی کنید.

این کاری که شما انجام میدید تا حدی مشابه با ساختار دیتابیس های no-sql هست.

چه موقع از دیتابیس های no-sql استفاده کنیم؟

در پاسخ به سوال بالا، باید بگم که هر زمان که دیتای شما هیچ ساختار مشخصی نداشت، باید از دیتابیس های no-sql استفاده کنید. طبق یکی از مقالات سایت مدیوم:

NoSQL is typically good for unstructured/"schemaless" data

و صورت مسئله شما دقیقا همین هستش، ذخیره سازی یک دیتایی که همیشه یکسان نیست و ساختارش کم و زیاد می شود. ولی از اونجایی که شما از بانک اطلاعاتی MySQL استفاده می کنید، خوشبختانه این پایگاه داده یک data-type دارد با عنوان json که دقیقا برای همین هدف ساخته شده است.

پس به عنوان جمع بندی، اصولی ترین روش برای همچین مواقع، استفاده از دیتابیس های (پایگاه داده ها) no-sql است؛ ولی از آنجایی که دیتابیسی که پروژه ی شما از آن استفاده می کند خود نیز یک نوع با عنوان json دارند، میتوانید از آن استفاده کنید و خیلی به صرفه نیست که به خاطر همین یه مورد خاص، یک دیتابیس دیگر (no-sql) را به پروژتون اضافه کنید.

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

colName->item1->subItem1->...

دقیقا مشابه no-sqlها ..!

جواب داده شده در سعید مرادی
1933 امتیاز

500 کاراکتر باقی مانده


جواب شما
     
.....
×

×

جعبه لام تا کام


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

تبلیغات توضیحی


داپ اَپ اولین پلتفرم کش‌بک در ایران
اگه میخوای از خریدهایی که میکنی، پاداش نقدی دریافت کنی داپ اَپ رو نصب کن.

تبلیغات تصویری