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

راهنمایی برای ساخت جدول با تعداد ستون های داینامیک

kamal_hajatmand  10 سال پیش  10 سال پیش
0 0

 میخوام یه جدول مثل شکل های زیر بسازم که وقتی کاربر روی ایکون به اضافه در شکل کلیک کرد یک جدول ساخته بشه و از کاربر مقادیر لازم رو بگیره و در یک اکتیویتی مثل عکس سمت راستی نمایش یده ولی نکته ای که هست اینه که هم تعداد تمرینات و هم ایتم های مربوط به تمرینات متغیره و ممکنه برای برنامه یک استاد دو تمرین و برای دیگری 10 تمرین باشه و همچنین ایتم های هر تمرین ممکنه برای یکی 3 تا برای یکی دیگه 10 تا باشه  برای ساخت چنین جدولی چکار باید بکنم ؟ ممنون میشم راهنمایی کنین

    

0 0
فک کنم از listview کمک بگیری بهتر باشه (10 سال پیش)
 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
Rabbit  10 سال پیش
+2 0

مطمئن نیستم که درست سوال رو فهمیدم یا نه. اگر شما میخواین مثلا 5 تا استاد باشه بعد هر استاد هر چندتا که دلش میخواد تمرین بده، مثلا یکی 3 تا یکی 10تا راهی که به نظر من میرسه استفاده از دیتابیس به این صورت هست:

سه تا جدول طراحی کنید. یک جدول اطلاعات استاد رو داشته باشه مثل اسم و سن و هرچی که هست.

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

در نهایت جدول آخر کلیدی‌ست که دوتا جدول اول رو به هم وصل میکنه. دوتا فیلد اصلی داره یکی IDـه استا و دیگری IDـه تمرین یا درس. در نهایت به ازای هر استادی که هر درس یا تمرینی رو ارائه کنه یک فیلد در این جدول اضافه میکنید که شامل ID هر دوتا هست. اینطوری با یک query ساده با ID استاد میشه تمام تمرین‌های مربوط به آن استاد رو پیدا کرد. یا تمامی استادهایی که یک تمرین یا درس رو ارائه میدن و....

باز اگر اشتباه کرده بودم بگید شاید بتونم کمک کنم

0 0
برداشتتون درسته ، ولی مشکلی که هست قراره که کاربر تمرینات رو وارد کنه و من نمیتونم به صورت پیش فرض تعدادی تمرین در یک دیتابیس بذارم و چک کنم آیا انتخاب شدن یا خیر و بعد اونهایی که انتخاب شدن رو نمایش بدم چون اصلا مشخص نیست که کاربر چه اسمی میخواد بذاره و چه درسهایی داره مشکل منم همین جاست میخوام کاری کنم دیتابیس کاملا داینامیک باشه و به صورت بهینه و اطلاعات وارد شده توسط کاربر دیت خودش باشه و هرچی دوست داشت وارد کنه و من مجبورش نکنم یکی از فیلدهایی که من انتخاب میکنم رو انتخاب کنه (10 سال پیش)
0 0
برداشتتون درسته ، ولی مشکلی که هست قراره که کاربر تمرینات رو وارد کنه و من نمیتونم به صورت پیش فرض تعدادی تمرین در یک دیتابیس بذارم و چک کنم آیا انتخاب شدن یا خیر و بعد اونهایی که انتخاب شدن رو نمایش بدم چون اصلا مشخص نیست که کاربر چه اسمی میخواد بذاره و چه درسهایی داره مشکل منم همین جاست میخوام کاری کنم دیتابیس کاملا داینامیک باشه و به صورت بهینه و اطلاعات وارد شده توسط کاربر دیت خودش باشه و هرچی دوست داشت وارد کنه و من مجبورش نکنم یکی از فیلدهایی که من انتخاب میکنم رو انتخاب کنه (10 سال پیش)
0 0
برای استفاده از دیتابیس استاندارد این هست که شما پیش بینی کنید کاربر چه چیزهایی میخواد. مثلا یک تمرین بغیر از یک فیلد اسم و زمان شروع و پایان و توضیحات به نظر من چیز دیگری نیاز نداره. ولی اگر شما میخواهید مثلا هر تمرین شامل کلی سوال و جواب باشه و تعداد این‌ها مشخص نیست راه دیگری هم دارید. باید یک table دیگه توی دیتابیس خودتون تعریف کنید که شامل ID مربوط به درس و هر فیلد دیگری که شما میخواهید باشه (مثلا فرض کنیم شامل سوال و جواب و نمره) بعد به ازای هر یک مقداری که کاربر تعریف میکنه شما یک record به این دیتابیس اضافه میکنید. بعد اگر برای یک تمرین 10تا سوال داشته باشیم توی table دوم 10 تا رکورد مربوط داریم که نقطه مشترک همه این‌ها ID سوال هست. شما هروقت روی ID سوال یک query بزنید تمامی رکوردها براتون میاد و فرقی نمیکنه چندتا باشه (10 سال پیش)
0 0
یک راه دیگر هم که اصلا توصیه نمیشه بهتون میگم ولی سعی کنید از روش قبلی استفاده کنید. شما میتونید یک رکورد خیلی بزرگ از تمام اطلاعاتی که کاربر میخواد رو در یک قالب استاندارد در بیاورید و این رو ذخیره کنید. مثلا شما با تمام اطلاعاتی که کاربر وارد کرده یک JSON بسازید و این JSON رو توی یک فیلد TEXT ذخیره کنید. بعد موقع خوندن هم اطلاعات رو از همین جیسون بخونید. (10 سال پیش)

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