شما باید این طور بتونید طراحی کنید زمانی که کالا جدیدی میاد باید در اپلکیشنتون صفحه ای داشتباشید که کاربر بتونه برای هر کالا فیلد های مشخصات اون رو درج کنه
و طبق اون جدول مورد نظر با مشخصات با مشخصات که کاربر برای اون تعیین میکنه ایجاد بشه ..این تنها زمانی که برای اولین بار چنین کالایی رو در دیتابیس ثبت میکنید..
پس برای هر کالا میتونید بطور انلاین یک جدول ثبت کنید....
و نکته باید فیلد خارجی اون رو در جدول فروش یا هر جدول دیگه مربوط به اون مانند ( انبار ) ... تعریف کنید..
یه نکته ای که بنظرم میرسه که در اصلاح اون باید بگم در پست اولم قبل گفته بود در جدول فروش فیلد های خاص هر کالا .. این مورد اگر در مشخصات خود کالا میتوان اون رو اورد لازم نیست در جدول فروش اون رو دوباره درج کرد مثالیم که اورده شد در مورد سیمان بود اگه میشه اون رو در جدول خودش ثبت کرد دیگه لازم نداره فیلد کیلو در جدول کالا اضافه کنید .. فقط زمانی لازمه که نوع فروش این کالا از نظر مثالا مقدار فرق کنه ..
یه نکته دیگه هین جا بذهنم رسید یه مقدار باید روش دقت کرد اون هم اینکه زمانی که ما مثلا یک کالایی رو با مقدار 10 تن خریداری کردیم .. در زمان فروش ممکنه این کالا تقسیم به 10 تا 1 تن بشود ...
یک مقدار باید روی این دقت کرد ..
بهینگی باید دید از چه نظر تعریف می کنید .. از نظر سرعت ، حجم دیتابیس ، یا عملکرد استاندارد ، یا مطمئن بودن ، و یا راحتی کار برنامه نویس با اون ...
در طراحی این سعی شده به تمامی نکات بالا توجه بشه ... در بهینگی باید حداقل پیچیدگی رو هم در نظر گرفت .. که برنامه نویس با حداقل پیچیدگی بتونه بهترین و سریع ترین حالات برنامه بنویسه .. عیب و ایراد احتمالی رو پیدا کنه .. بهینه شاخصه های دیگه هم داره ..
که بعد شاید بیان کنم ..
برای اون مورد مثال 10 تن هم
میتونید در جدول فروش کد اون کالا رو بیارید و همین طور که قبلا هم گفتم در فیلد کیلو مورد نظر رو در اون ثبت کنید
مثال: جدول سیمان ( 1024، سیمان یزد ، 10،...)
جدول فروش ( کد فروش ، کد کالا ، کیلو ، ... )
------------>( 100070، 1024، 1،...)
-----------> ( 100172، 1024، 1، ...)
به این ترتیب میشه این کالا رو هم میشه به تعداد دفعات بالاتر تقسیم کرد و در جدول فروش اونو ثبت کرد..
سلام.
طاووسی از نظرات رو میشه در این تاپیک دید!.
من نرسیدم نظرات همه دوستان رو بخونم.
بعضی ها گفته بودن برای هر کالا یک جدول جداگانه در نظر بگیریم.
امروز 10 تا کالا داریم، فردا مشتری میگه 10 تا کالای جدید داریم. تکلیف چیه؟. بازم باید بریم جدول طراحی کنیم؟
این روش قطعا رد میشه.
بعضی از دوستان، گفتن که فیلدهای خالی زیادی برای هر رکورد داشته باشیم. این روش هم اشتباه هست چراکه باعث ایجاد فضای خالی زیادی بین صفحات موجود در جدول میشه.
یکی از دوستان گفته بودن که برای واحد کالا ( و کلا مقادیری که متمایز هست) جدول جداگانه بگیریم. این روش مناسب هست. مثلا برای واحد یک کالا، ما یک جدول برای واحدها در نظر میگیریم که حداقل دو فیلد کد واحد(کلید) و نام واحد رو درج میکنیم ( 1 کیلوگرم ، 2 متر ، 3 شاخه و ...). حالا در جدول کالا، کد واحد شمارش رو درج میکنیم.(یعنی کلید اصلی جدول واحدها بعنوان کلید خارجی در جدول کالا ذکر میشه). کلا برای مواردی که متغیر هستن، برای هر مورد باید یک جدول جداگانه ایجاد کنید.
ببینید من براتون نمونه جدول گزاشتم براتون ویو هم درست کردم ولی شما توجه نمی کنید به گفته های دوستان و فقط گفته خودتونو می کین
اصلا نیازی نیست که کد کالا در جدول دوم ثبت شود چون اگه ثبت شود دیگه رابطه یه جوری یک به یک میشه نه یک به چند. فقط کد جدول دوم میاد به جدول اول
من منظورم از کلید همون باتن بوده (که دقیقا شما توضیح دادین همون واحد جدید ، یعنی اگه واحد در لیست کامبو نبود کلید (یا همون باتن واحد جدید)رو کلیک کنید و فرم واحد جدید باز بشه)
دقیقا این روش بهترین روش می باشد ولی این دوستمون فعلا در ارتباط دوتا جدول اشکال دارند ، حالا بعد از ارتباط اینها می تونه جدول سوم رو هم بیاره تو کار
خب هر چند هزار تا باشه مشکلی نیست ، نیازی هم به حضور برنامه نویس نیست،می تونید یک فرم هم برای اضافه کردن خصوصیات بسازید ، خصوصیات پیش فرض رو هم می تونید تو جدولتون درج کنید
ببین قرار نیست برای هر کالا یک خصوصیت داشته باشی بلکه یک نوع خصوصیت می تونه برای 100 کالا تعیین بشه
قبلا هم توصیه کردم که شما بهتر است مفاهیم پایگاه داده رو یک بار دیگر مرور کنید و یا اگر رشتتون کامپیوتر نیست یک مقاله در این رابطه پیدا کنید و بخونید.
موفق باشید
عزیزم شما مطلب رو کامل بخونید .. بعد متوجه میشید
من یه سوال دارم شما به عنوان مثال چطور یه خونه رو با یک ماشین فیلداشونو یکی میگیرد
البته میشه پنجره های خونه رو با چراغ های ماشین یکی گرفت !! یا مثلا لامپ های خونه رو با چراغای ماشین !! البته رادیوتر ماشینو شاید با موتور خونه!!
نمیدونم دوستان به طراحی جدید در این مورد رسید یه مقاله در این رابطه چاپ کنند ..
مثلا ما کالایی که 500 فیلد داره رو با کالا که 50 فیلد دار ه چطور یتونیم یکی کنیم ...؟؟!! بعد ضمنا بقیه فیلد ها فضایی خالی ایجاد نمیکنه؟؟!!
موفق باشید .. در ضمن اپلکشین با اتصال به بانک اطلاعاتی میتونه جداول انلاین در دیتابیس ایجاد کنه.. لازم نیست برنامه نویس یک به یک برای هر جدول اونو تک تک وارد کنه...
این خودش قابلیت های بانک اطلاعتیه که حتما لازم نیست شما به صورت دستی جدول درست کنید..
دوست عزیز من کل پست ها رو از اول دارم پی گیری می کنم بله دو سه نفر گفتن که برا ی هر نوع کالا یه جدول پس برای 10 نوع کالا 10 جدول درست کنید ولی منطقشون برای توجیح این مطلب صحیح نیست ،و با خوندن مطالب ایشان برخی از دوستان برداشت اشتباه می کنند و بعد در مورد همون برداشت اشتباه سئوال می کنند و بقیه هم فکر می کنند که ...سلام.
طاووسی از نظرات رو میشه در این تاپیک دید!.
من نرسیدم نظرات همه دوستان رو بخونم.
بعضی ها گفته بودن برای هر کالا یک جدول جداگانه در نظر بگیریم.
امروز 10 تا کالا داریم، فردا مشتری میگه 10 تا کالای جدید داریم. تکلیف چیه؟. بازم باید بریم جدول طراحی کنیم؟
این روش قطعا رد میشه.
اگر از روش به قول دوستمون داینامیک در داینامیک استفاده کنید هیچ فیلدی خالی نمی ماند و برنامه کاملا فلکسبل می شود ، منتها باید در تعریف پروژه این نیاز دیده شود که لزومی به پیاده سازی این روش می باشد
فقط توضیح این مساله برای کسی که ارتباط یک به چند و چند به چند و یک به یک رو فعلا تشخیص نمیده یه کم سخته
مثالش مثل اینه که یکی ندونه اصلا گیر بکس واسه چیه و کاربرد و کاراییش چیه بعد ما بیایم براش بگیم که اگه چرخ دنده دنده 2 دنده هاش موب بود این طوری میشد.
یا مثلا به کسی که نمی دونه ولتاژ چیه بیایم KVL و KCL رو توضیح بدیم یا بگیم که ساختار دیود چیه و ......
خب برای اینکه برای همه موارد متغییر یه جدول جداگانه نسازیم میایم جدواولمونو می کنیم سهکلا برای مواردی که متغیر هستن، برای هر مورد باید یک جدول جداگانه ایجاد کنید.
جدول اول خود کالا
جدول دوم خصوصیات کالا
جدول سوم برای درج خصوصیات کالا
مثلا کالای شماره یک رنگ داره مقدارشم قرمزه
کالای شماره دو مزه داره مزشم ترشه
کالای شماره سه هم مزه داره و مزش تلخه
کالای شماره 4 ابعاد داره که 15*23 می باشد
کالای شماره 5 هم ابعاد داره هم رنگ
همه اینا در جدول سوم ذخیره میشه (به عنوان یک ردیف نه فیلد)
یعنی در جدول سوم هم کد خصوصیات درج میشه و هم کد کالا و یک مقدار (یعنی این خصوصیت مربوط میشه به فلان کالاو فلان خصوصیت که مقدارشم مثلا x می باشد)
جدول سوم (کالای یک ، خصوصیت رنگ ، مقدار قرمز) / (کالای یک ، خصوصیت ابعاد ، مقدار 10*20) / (کالای دو ، خصوصیت رنگ ، آبی) / (کالای 3 ، خصوصیت ابعاد ، مقدار 20*40)/(کالای 3 ، خصوصیت واحد کالا ، مقدار کیلو)
و هزاران فیلد دیگر.....
جدول کالا می تونه 10000 تا ردیف داشته باشه
جدول نوع خصوصیات می تونه 1000 تا ردیف داشته باشه
جدول خصوصیات می تونه 1000000 تا ردیف داشته باشه
می تونی یک ملیون تا کالا تعریف کنی که هر کدومش حتی هزار تا خصوصیت داشته باشه و تو همون جدول کالا ،کالایی داشته باشی که براش خصوصیتی ثبت نشده باشه
هیچ فیلد خالی هم نداریم
هیچ محدودیتی هم در تعداد کالا یا خصوصیات ندارم
آخرین ویرایش به وسیله hojjatshariffam : شنبه 29 تیر 1392 در 22:24 عصر دلیل: استفاده از واژه های نا صحیح و دو گان
از توجه شما ممنونم من یک کدبا توضیحات شما و دوستان نوشتم لطفا به این دو سوال جواب بدید ( کد در پست 25 گذاشتم)
1- آیا این کد بیانگر این است که من مفهوم حرف دوستان را فهمیدم یا نه
2- یکی از دوستان گفته این روش کد نویسی خوب نیست لطفا الگوریتمی بفرمایید چطور اون کد را تغییر بدم؟
من دقیقا با این روش موافقم فکر میکنم بهینه ترین روش ممکن همین باشه
دوستان لطف کنین و یک الگوریتم برای کد نویسی این روش بگید
دوستان گرامی توجه کنن این سناریو توی اکثر برنامه ها کاربرد داره مثل برنامه های حسابداری ،انبارداری و ...... پس نیاز خیلی از اعضای سایت میتونه باشه
اگر مشارکت دوستان بیشتر بشه مطمئنا به درد همه اعضا میخوره
بازم از همه دوستان که مشارکت کردن تشکر میکنم
بله همون کد شمارو دانلود کردم و در موردشم براتون توضیح دادم
گفتم که نباید در هر دو جدول همزمان ذخیره بکنید و یک باتن ایجاد واحد جدید (قبلا بهم گفته بودم کلید) جلوی کامبو بزارید و اگه واحد مورد نظر در لیست نبود برید در فرم دوم واحد جدید رو اضافه کنید
ضمنا گفتم که لزومی نداره که در جدول دوم کلید جدول اول ذخیره شود ، و فقط کلید جدول دوم میره تو جدول اول .
روش سه جدول در حالت پیشرفته است ، شما اینو فعلا کامل درک کنید (یا پیاده سازی کنید تابهتر درک کنید) بعد روش سه جدول رو بهتر می تونید بفهمید که چیه
من هم این روش رو و هم روش سه جدول رو در چند تا از پروژه ها استفاده کردم و کاملا هم باهاشون آشنام
روش اول که خیلی سادست و اگه بیشتر دقت کنید و به توضیحات من و دوستان دیگه با دقت توجه بکنید می تونید پیاده سازیش کنید
روش سه جدول که یکمی پیاده سازیش پیچیده تره یکم زمانبر و کدش هم زیاده ولی اونم کاری نداره
هر کسی پیاده سازی کنه تو همون مثال پست 25 که می تونه براش ایده باشه می تونم راهنمائیش کنم
مهمترین مشکل شما در طراحی دیتابیس وجود کالاهای مختلف با ویژگیهای مختلف میباشد
همه ی ما میدونیم با توجه به قوانین نرمال سازی ایجاد جدول کالا با ویژگیهای زیاد به گونه ای که برای تمامی کالاها را در بر گیرد درست نیست(افزونگی)
روشهای دیگری رو هم دوستان گفتند که حتما دلیل خاص خودشون رودارند مانند ایجاد جدول برای هر کالا را من پیشنهاد نمیکنم
اما جواب سوال شما
طراحی جدولها با توجه به تصاویر ارسال شده کاملا درسته(پست شماره 37)
جدول شماره 3 همان جدول کالا میباشد
مثلا خودرو یا ساختمان مسکونی و ... که به عنوان کالا در نظر گرفته میشوند لذا فقط نام کالا یا اموال در این قسمت قرار میگیرد
اما هر یک از این کالاها ویژگیهایی دارند به عنوان مثال خودرو ویژگیهایی مانند(مدل - سال تولید - رنگ - تعداد چرخ و...) همچنین ساختمان ویژگیهایی مانند(مسکونی یا تجاری - تعداد اتاق - شماره طبقه - متراژ و ...)
برای حل مساله تطبیق ویژگی هر کالا با کالای مورد نظر روش من به این صورت بود که شما ابتدا فقط نام کالا را در جدول شماره 3(جدول کالا) قرار دهید و ویژگیهای کالا را در جدول شماره 2 قرار دهید
این دو جدول هیچ ارتباطی باهم ندارند و برای تطبیق این ویژگیها با کالاهای مورد نظر از جدول شماره 4 استفاده میکنیم
برای تطبیق ویژگیها با کالاها در جدول شماره 4 به این صورت عمل میکنیم(این جدول درواقع محل نگهداری ویژگیهای هر یک از کالا میباشد)
کد کالا از جدول کالا به شماره 3(معرف خود کالاست) - کد ویژگی کالا از جدول شماره2(معرف ویژگی) و تعداد کالا(count)
به این ترتیب دیگر نیازی به ایجاد جدول برای هر یک ازکالاها نداریم و همچنین هر یک از کالا ها ویژگیهای مخصوص به خود را دارد و هیچ فیلد اضافی برای هیچ یک از کالا ایجاد نمیشود
اینم یه دیاگرام از توضیحات دوستمون
Capture.JPG
کی این حرف رو زد؟
ما داریم بر روی موجودیت حرف میزنیم. کالاهایی مثل کاشی و سیمان و ... یک موجودیت به نام کالا رو تشکیل میدن. خونه چه ربطی به ماشین داره؟
در پست 38 اینو گفتید :
اول یاد بگیر که به اینا میگن موجودیت نه کالا، بعدش بیا در بحث شرکت کن.شما به ازاء هر نوع کالا باید یک جدول طراحی کنید. مثال میزنم مثلا شما برای یک کالا مانند خانه باید یک جدول جدا طراحی کنید و برای کالا دیگه مثل ماشین یک جدول با فیلد های مخصوص اون یا برای موبایل باید همین طور
جداول پویا و داینامیک اصول خودش رو داره، الکی که نمیشه جدول آنلاین با فیلد داینامیک ایجاد کرد. فیلدهای داینامیک زمانی کاربرد داره که ما از قبل نمیدونیم چه فیلدهایی برای جدول نیاز هست یا اینکه احتمال میدیم که کاربر طبق نیازش دوست داره یک سری فیلدهای جدید رو (که از قبل نمیدونیم) رو اضافه کنه.در ضمن اپلکشین با اتصال به بانک اطلاعاتی میتونه جداول انلاین در دیتابیس ایجاد کنه.. لازم نیست برنامه نویس یک به یک برای هر جدول اونو تک تک وارد کنه...
پست 4 و 13 رو ببینید.
ما باید یاد بگیریم به موجودیت بگیم موجودیت، به رابطه بگیم رابطه.
این روش گرچه درسته ولی بستگی به میزان فیلدهایی داره که میتونه برای یک کالا خالی یا پر بشه. فرض کنید ما کلا 7 خصوصیت داشته باشیم (مثل رنگ، مزه و ...). بعضی کالاها ممکنه اکثر خصوصیات رو داشته باشن. در روش شما برای همچین کالایی با فرض اینکه هر 7 خصوصیت رو داشته باشه باید 7 رکورد درج بشه و در هر رکورد هم کد کالا درج بشه در صورتیکه با یک رکورد که شامل 8 فیلد هست، میشه همین کار رو انجام داد. یعنی از تکرار 6 بار کد کالا جلوگیری میشه. همچنین در روش شما برای چنین کالایی کلا باید 7 * 3 = 21 ستون رو مقداردهی کرد ولی میشه همین جدول رو با 8 ستون هم پیاده سازی کرد و همچنین از ایجاد جدولی برای خصوصیات هم جلوگیری کرد. یعنی ما جدولی خواهیم داشت با 8 رکورد که یک فیلد اون کد کالا و 7 فیلد دیگر خصوصیات خواهند بود. تاکید میکنم این روش زمانی موثر هست که اکثریت فیلدها برای هر کالا مقدار داشته باشه و خصوصیات هر کالا رو هم از قبل بدونیم. پس اینطور نیست که همیشه با 3 فیلد یک طراحی بهینه رو داشته باشیم. پس بستگی به نوع پروژه ما داره و باید این مورد بخوبی تحلیل بشه.اگر از روش به قول دوستمون داینامیک در داینامیک استفاده کنید هیچ فیلدی خالی نمی ماند و برنامه کاملا فلکسبل می شود
خب برای اینکه برای همه موارد متغییر یه جدول جداگانه نسازیم میایم جدواولمونو می کنیم سه
جدول اول خود کالا
جدول دوم خصوصیات کالا
جدول سوم برای درج خصوصیات کالا
مثلا کالای شماره یک رنگ داره مقدارشم قرمزه
کالای شماره دو مزه داره مزشم ترشه
کالای شماره سه هم مزه داره و مزش تلخه
کالای شماره 4 ابعاد داره که 15*23 می باشد
کالای شماره 5 هم ابعاد داره هم رنگ
همه اینا در جدول سوم ذخیره میشه (به عنوان یک ردیف نه فیلد)
یعنی در جدول سوم هم کد خصوصیات درج میشه و هم کد کالا و یک مقدار (یعنی این خصوصیت مربوط میشه به فلان کالاو فلان خصوصیت که مقدارشم مثلا x می باشد)
جدول سوم (کالای یک ، خصوصیت رنگ ، مقدار قرمز) / (کالای یک ، خصوصیت ابعاد ، مقدار 10*20) / (کالای دو ، خصوصیت رنگ ، آبی) / (کالای 3 ، خصوصیت ابعاد ، مقدار 20*40)/(کالای 3 ، خصوصیت واحد کالا ، مقدار کیلو)
و هزاران فیلد دیگر.....
جدول کالا می تونه 10000 تا ردیف داشته باشه
جدول نوع خصوصیات می تونه 1000 تا ردیف داشته باشه
جدول خصوصیات می تونه 1000000 تا ردیف داشته باشه
می تونی یک ملیون تا کالا تعریف کنی که هر کدومش حتی هزار تا خصوصیت داشته باشه و تو همون جدول کالا ،کالایی داشته باشی که براش خصوصیتی ثبت نشده باشه
هیچ فیلد خالی هم نداریم
هیچ محدودیتی هم در تعداد کالا یا خصوصیات ندارم
دقیقا با نظرت شما کاملا موافقم جناب
veniz2008
من منظورم از همه مطالب ، مطالب صحیح بود ، در مورد دو گانگی پیش اومده معذرت می خوام
بله درسته باید یاد بگیریم از کلمه موجودیت استفاده کنیم ، از این بابت هم متشکرم
همانطوز که فرمودین بستگی به پروژه داره و این توضیحاتم نه به خاطر این بوده که حتما از این روش استفاده شود.
ضمن اینکه ممکنه از همون خصوصیت برای یک موجودیتی چند تا نیاز باشه که ثبت بشه مثل ده بیست تا تلفن برای موجودیتی مثل مخاطب (اگر در نیاز مندیهای پروژه این طور باشه که نیازه برای هر مخاطب چندین تلفن ، چندین موبایل ، چندین تلفن محل کار و .... ثبت شود. نه اینکه برای هر مخاطب یک یا حد اکثر 3 تلفن به علاوه یک موبایل که در این صورت با 5 تا فیلد حل می شد)
به هر حال مونده به نیازمندی های پروژه
سلام
از همه عزیزانی که وقت گذاشتن و به تاپیک جواب دادن ممنونم
احتراما آخرین کدی که باا همکاری دوستان نوشتم را میزارم دوستان نظر دهند
در فرم اول اطلاعات را در جدول Table_mainkala درج میکنم به جز تکست باکس ها یک کومبو گذاشتم که اطلاعات را از جدول Table_subkala میخونم :
private void Form1_Load(object sender, EventArgs e)
{
da = new SqlDataAdapter("select distinct(vahed),id from Table_subkala", con);
da.Fill(ds, "Table_subkala");
comboBox1.DataSource = ds.Tables["Table_subkala"];
comboBox1.DisplayMember = "vahed";
comboBox1.ValueMember = "id";
}
سپس کاربر با کلیک بر روی عناصر کومبو آیدی مربوط به واحد کالا در یک متغیر ریخته میشه :
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
temp_id =comboBox1.SelectedValue.ToString();
}
سپس این آیدی که کلید خارجی هست از جدول Table_subkala ، به همراه سایر اطلاعات در Table_mainkala درج میشود
حال اگر کاربر واحد کالای مورد نظر را از کومبو پیدا نکرد روی دکمه "اضافه کردن واحد جدید" کلیک میکنه و فرم جدید براش میاد و در اینجا میتونه واحد کالای مورد نظرش را درج کنه ، البته این درج داخل جدول Table_subkala درج میشود:
private void button1_Click(object sender, EventArgs e)
{
if (con.State == ConnectionState.Closed)
{
con.Open();
}
string strsql2 = "insert into Table_subkala(vahed)values('" + textBox1.Text + "')";
cmd = new SqlCommand();
cmd.CommandText = strsql2;
cmd.Connection = con;
cmd.ExecuteNonQuery();
con.Close();
MessageBox.Show("اطلاعات با موفقيت ذخيره شدند");
}
بزرگترین اشتباه من در کد پست 25 این بود که : در جدول Table_subkala هم یک کلید خارجی به جدول Table_mainkala گذاشتم و اینکه در یک باتن دو دستور insert گذاشتم که هم ذر جدول Table_mainkala و هم Table_subkala درج میکردم
حالا چند سوال :
1- وقتی پس از درج واحد جدید در فرم دو ، دوباره به فرم یک بر میگردم چطوری اطلاعات را از دیتابیس دوباره بخونم و در کومبو بریزم؟ یک راهش میتونه این باشه که یه متغیر عمومی تعریف کنم و پس از خارج شدن از فرم دو اطلاعات را بخونم و بایند کنم راه حل بهتری دارید به من یاد بدید
2- برای گرفتن گزارش های مختلف مثلا نشان دادن کل کالاهای ثبتی بطوریکه واحد کالا هم بعنوان یک ستون گزارش وجود داشته باشه(بعنی از هر 2 جدول بخونم) باید از view استفاده کنم؟
آخرین ویرایش به وسیله csharpprogramer88 : شنبه 29 تیر 1392 در 23:42 عصر
دوست عزیز اینجا همه به خوبی شما مفاهیم محیط عملیاتی ، موجودیت ، مجموعه صفات و... را میدانند
هدف ارائه راه حلهای مختلف برای رسیدن به نتیجه بود که حاصل شد. در ضمن بهتر بود به حساسیت مطرح کننده این موضوع هم توجه نمایید
شما آمدید و راه حلهای ارائه شده را تکرار کردید ولی متوجه منظور یا هدفتون جهت ارائه این پست نشدم
اگر میخواهید صحبت کنید بهتر است با لحن بهتری صحبت کنید در غیر این صورت کسی حاضر به پاسخگویی نخواهد بود
بله این کدتون صحیح تر از بقیه می باشد
میتونی اون کد هایی که در متد لود فرمت نوشتی رو به عنوان یه متد بنویسی بعد از برگشت از فرم دوم اول آیتم های کامبوتو پاک کن بعد اون متد رو فراخانی کن (کدهای درون متد لود رو هم پاک کن و به جاش اون متد جدید رو فراخانی کن)- وقتی پس از درج واحد جدید در فرم دو ، دوباره به فرم یک بر میگردم چطوری اطلاعات را از دیتابیس دوباره بخونم و در کومبو بریزم؟ یک راهش میتونه این باشه که یه متغیر عمومی تعریف کنم و پس از خارج شدن از فرم دو اطلاعات را بخونم و بایند کنم راه حل بهتری دارید به من یاد بدید
می تونی از ویو استفاده کنی و بعد از به جای سلکت از جدولت از ویو سلکت کنی2- برای گرفتن گزارش های مختلف مثلا نشان دادن کل کالاهای ثبتی بطوریکه واحد کالا هم بعنوان یک ستون گزارش وجود داشته باشه(بعنی از هر 2 جدول بخونم) باید از view استفاده کنم؟
ویا اینکه کد اس کیو ال ویو رو خودت بنویسی تو برنامت (یعنی از جوین استفاده کنی ، همون طور که ویو استفاده می کنه)
می تونی از استورد پروسیجر استفاده کنی
و هزاران راه دیگه
یعنی میشه روش بهتری از اینی که نوشتم هم داشته باشم؟بله این کدتون صحیح تر از بقیه می باشد
اوکی - ولی بعد برگشت به فرم اول چطوری میتونم متد را فراخوانی کنم؟میتونی اون کد هایی که در متد لود فرمت نوشتی رو به عنوان یه متد بنویسی بعد از برگشت از فرم دوم اول آیتم های کامبوتو پاک کن بعد اون متد رو فراخانی کن (کدهای درون متد لود رو هم پاک کن و به جاش اون متد جدید رو فراخانی کن)
در فرم لود که نمیتونم بنویسم اگه یه دکمه هم بزارم که روی اون کلیک بشه بازم جالب نمیشه بهترین روش همون فرم لوده ولی چطور بنویسمش؟
اگه میشه لطف کنید و برای این چیزی که فرمودید کد منو تغییر بدید بخصوص "ویا اینکه کد اس کیو ال ویو رو خودت بنویسی تو برنامت (یعنی از جوین استفاده کنی"می تونی از ویو استفاده کنی و بعد از به جای سلکت از جدولت از ویو سلکت کنی
ویا اینکه کد اس کیو ال ویو رو خودت بنویسی تو برنامت (یعنی از جوین استفاده کنی ، همون طور که ویو استفاده می کنه)
می تونی از استورد پروسیجر استفاده کنی
و هزاران راه دیگه
بنده ادعایی کردم؟
ولی وقتی کسی به ماشین، به خونه، به انسان، به درس و به ... میگه کالا یعنی مفاهیم رو خوب درک نکرده.
من قصد شرکت در این تاپیک رو هم نداشتم. در واقع مدت هاست که خیلی کم در تاپیک ها نظر میدم. دلیلش هم افرادی مثل شماها هست که عادت دارید در هر تاپیکی شرکت کنید و اون تاپیک رو به بیراهه بکشونید. وقتی چیزی رو نمیدونیم نباید به خودمون اجازه بدیم که بیایم و مثل یه دکتر نظر بدیم و بعدش در کمال پر رویی دیگران رو به ندونستن متهم کنیم و با تمسخر بگیم : "نمیدونم دوستان به طراحی جدید در این مورد رسید یه مقاله در این رابطه چاپ کنند ..".
دلیل حضور من در تاپیک پیغام خصوصی بود که ایجاد کننده تاپیک به بنده دادن و گفتن که نیاز به راهنمایی دارن تا راه درست رو تشخیص بدن.
شما هم که دقیقا مثل همین کاربر بی منطق حرف میزنید. پست 47 بنده رو (اولین پستم در این تاپیک) دوباره مطالعه کنید. من گفتم یکی از دوستان راه مناسبی رو ارائه داده. من که دنبال دزدیدن و ثبت اختراع دیگران به اسم خودم نبودم. ما توی طراحی یک اصولی داریم که از بنده تا بزرگترین طراح دیتابیس دنیا این اصول رو رعایت میکنه. حالا یک نفر اومده راه درستی رو گفته من بیام از خودم راه جدید در بیارم؟، بگم فلانی اشتباه گفته و راه اشتباهی رو بگم؟شما آمدید و راه حلهای ارائه شده را تکرار کردید ولی متوجه منظور یا هدفتون جهت ارائه این پست نشدم
من عادت دارم رک حرف بزنم. حرفم رو رودررو میگم که مبادا حرفی بمونه تا پشت سر دیگران گفته بشه.اگر میخواهید صحبت کنید بهتر است با لحن بهتری صحبت کنید در غیر این صورت کسی حاضر به پاسخگویی نخواهد بود
بهتره از معماری های نرم افزار (مثلا معماری سه لایه و ...) استفاده کنید و اصول برنامه نویسی هم رعایت شود ولی چون مبحث کد نبوده و روش استفاده بوده جای بحثش نیست
خب بعد اینکه فرم دوم رو ShowDialog کردین در خط بعدی متد نوشته شده رو فراخانی کنید(این یه ورشه ، می تونید از نماینده ها و ایونت ها و یا حتی ساده تر از DialogResult استفاده کنید ....)
خب خودت یه ویو درست کن و کد اس کیو الی که اون ویو درست می کنه رو کپی کن و تو برنامت ازش استفاده کن
پس روش طراحی دیتابیس درسته؟ البته یکی از دوستان در پست 35 نظری دادن که بعد به نتیجه رسیدن این روش میخوام اون روش را هم بررسی کنمهتره از معماری های نرم افزار (مثلا معماری سه لایه و ...) استفاده کنید و اصول برنامه نویسی هم رعایت شود ولی چون مبحث کد نبوده و روش استفاده بوده جای بحثش نیست
لطف کن و یه نمونه کد از این روش بده چون روی روشی که گفتید از تابع استفاده کنم خودم هم حدس میزدم اینجور باشه ولی نمیدونم توی کدوم رویداد اینکارو کنمخب بعد اینکه فرم دوم رو ShowDialog کردین در خط بعدی متد نوشته شده رو فراخانی کنید(این یه ورشه ، می تونید از نماینده ها و ایونت ها و یا حتی ساده تر از DialogResult استفاده کنید ....)
از تمامی دوستانی که زحمت کشیدن و در بحث مشارکت کردن ممنونم
از جناب veniz2008 هم که با پیام خصوصی در بحث مشارکت کردن ممنونم