نقل قول: این جدول را چطوری طراحی کنم ؟
نقل قول:
نوشته شده توسط
hojjatshariffam
ببینید من براتون نمونه جدول گزاشتم براتون ویو هم درست کردم ولی شما توجه نمی کنید به گفته های دوستان و فقط گفته خودتونو می کین
اصلا نیازی نیست که کد کالا در جدول دوم ثبت شود چون اگه ثبت شود دیگه رابطه یه جوری یک به یک میشه نه یک به چند. فقط کد جدول دوم میاد به جدول اول
من منظورم از کلید همون باتن بوده (که دقیقا شما توضیح دادین همون واحد جدید ، یعنی اگه واحد در لیست کامبو نبود کلید (یا همون باتن واحد جدید)رو کلیک کنید و فرم واحد جدید باز بشه)
دقیقا این روش بهترین روش می باشد ولی این دوستمون فعلا در ارتباط دوتا جدول اشکال دارند ، حالا بعد از ارتباط اینها می تونه جدول سوم رو هم بیاره تو کار
خب هر چند هزار تا باشه مشکلی نیست ، نیازی هم به حضور برنامه نویس نیست،می تونید یک فرم هم برای اضافه کردن خصوصیات بسازید ، خصوصیات پیش فرض رو هم می تونید تو جدولتون درج کنید
ببین قرار نیست برای هر کالا یک خصوصیت داشته باشی بلکه یک نوع خصوصیت می تونه برای 100 کالا تعیین بشه
قبلا هم توصیه کردم که شما بهتر است مفاهیم پایگاه داده رو یک بار دیگر مرور کنید و یا اگر رشتتون کامپیوتر نیست یک مقاله در این رابطه پیدا کنید و بخونید.
موفق باشید
از توجه شما ممنونم من یک کدبا توضیحات شما و دوستان نوشتم لطفا به این دو سوال جواب بدید ( کد در پست 25 گذاشتم)
1- آیا این کد بیانگر این است که من مفهوم حرف دوستان را فهمیدم یا نه
2- یکی از دوستان گفته این روش کد نویسی خوب نیست لطفا الگوریتمی بفرمایید چطور اون کد را تغییر بدم؟
نقل قول: این جدول را چطوری طراحی کنم ؟
نقل قول:
نوشته شده توسط
mahan.2002
عزیزم شما مطلب رو کامل بخونید .. بعد متوجه میشید
من یه سوال دارم شما به عنوان مثال چطور یه خونه رو با یک ماشین فیلداشونو یکی میگیرد
البته میشه پنجره های خونه رو با چراغ های ماشین یکی گرفت !! یا مثلا لامپ های خونه رو با چراغای ماشین !! البته رادیوتر ماشینو شاید با موتور خونه!!
نمیدونم دوستان به طراحی جدید در این مورد رسید یه مقاله در این رابطه چاپ کنند ..
مثلا ما کالایی که 500 فیلد داره رو با کالا که 50 فیلد دار ه چطور یتونیم یکی کنیم ...؟؟!! بعد ضمنا بقیه فیلد ها فضایی خالی ایجاد نمیکنه؟؟!!
موفق باشید .. در ضمن اپلکشین با اتصال به بانک اطلاعاتی میتونه جداول انلاین در دیتابیس ایجاد کنه.. لازم نیست برنامه نویس یک به یک برای هر جدول اونو تک تک وارد کنه...
این خودش قابلیت های بانک اطلاعتیه که حتما لازم نیست شما به صورت دستی جدول درست کنید..
ببین دوست عزی با روش سه جدول که دوستمون Mohammadm https://barnamenevis.org/images/butto...wpost-left.png پیشنهاد کردند و منم در پست قبل بیشتر توضیحش دادم میشه همچین کاری
خود شما اگه بیشتر دقت کنید می بینید که میشه
نقل قول: این جدول را چطوری طراحی کنم ؟
نقل قول:
نوشته شده توسط
veniz2008
.
یکی از دوستان گفته بودن که برای واحد کالا ( و کلا مقادیری که متمایز هست) جدول جداگانه بگیریم. این روش مناسب هست. مثلا برای واحد یک کالا، ما یک جدول برای واحدها در نظر میگیریم که حداقل دو فیلد کد واحد(کلید) و نام واحد رو درج میکنیم ( 1 کیلوگرم ، 2 متر ، 3 شاخه و ...). حالا در جدول کالا، کد واحد شمارش رو درج میکنیم.(یعنی کلید اصلی جدول واحدها بعنوان کلید خارجی در جدول کالا ذکر میشه). کلا برای مواردی که متغیر هستن، برای هر مورد باید یک جدول جداگانه ایجاد کنید.
من دقیقا با این روش موافقم فکر میکنم بهینه ترین روش ممکن همین باشه
دوستان لطف کنین و یک الگوریتم برای کد نویسی این روش بگید
دوستان گرامی توجه کنن این سناریو توی اکثر برنامه ها کاربرد داره مثل برنامه های حسابداری ،انبارداری و ...... پس نیاز خیلی از اعضای سایت میتونه باشه
اگر مشارکت دوستان بیشتر بشه مطمئنا به درد همه اعضا میخوره
بازم از همه دوستان که مشارکت کردن تشکر میکنم
نقل قول: این جدول را چطوری طراحی کنم ؟
نقل قول:
نوشته شده توسط
csharpprogramer88
از توجه شما ممنونم من یک کدبا توضیحات شما و دوستان نوشتم لطفا به این دو سوال جواب بدید ( کد در پست 25 گذاشتم)
1- آیا این کد بیانگر این است که من مفهوم حرف دوستان را فهمیدم یا نه
2- یکی از دوستان گفته این روش کد نویسی خوب نیست لطفا الگوریتمی بفرمایید چطور اون کد را تغییر بدم؟
بله همون کد شمارو دانلود کردم و در موردشم براتون توضیح دادم
گفتم که نباید در هر دو جدول همزمان ذخیره بکنید و یک باتن ایجاد واحد جدید (قبلا بهم گفته بودم کلید) جلوی کامبو بزارید و اگه واحد مورد نظر در لیست نبود برید در فرم دوم واحد جدید رو اضافه کنید
ضمنا گفتم که لزومی نداره که در جدول دوم کلید جدول اول ذخیره شود ، و فقط کلید جدول دوم میره تو جدول اول .
روش سه جدول در حالت پیشرفته است ، شما اینو فعلا کامل درک کنید (یا پیاده سازی کنید تابهتر درک کنید) بعد روش سه جدول رو بهتر می تونید بفهمید که چیه
نقل قول: این جدول را چطوری طراحی کنم ؟
نقل قول:
نوشته شده توسط
csharpprogramer88
من دقیقا با این روش موافقم فکر میکنم بهینه ترین روش ممکن همین باشه
دوستان لطف کنین و یک الگوریتم برای کد نویسی این روش بگید
دوستان گرامی توجه کنن این سناریو توی اکثر برنامه ها کاربرد داره مثل برنامه های حسابداری ،انبارداری و ...... پس نیاز خیلی از اعضای سایت میتونه باشه
اگر مشارکت دوستان بیشتر بشه مطمئنا به درد همه اعضا میخوره
بازم از همه دوستان که مشارکت کردن تشکر میکنم
من هم این روش رو و هم روش سه جدول رو در چند تا از پروژه ها استفاده کردم و کاملا هم باهاشون آشنام
روش اول که خیلی سادست و اگه بیشتر دقت کنید و به توضیحات من و دوستان دیگه با دقت توجه بکنید می تونید پیاده سازیش کنید
روش سه جدول که یکمی پیاده سازیش پیچیده تره یکم زمانبر و کدش هم زیاده ولی اونم کاری نداره
هر کسی پیاده سازی کنه تو همون مثال پست 25 که می تونه براش ایده باشه می تونم راهنمائیش کنم
نقل قول: این جدول را چطوری طراحی کنم ؟
نقل قول:
نوشته شده توسط
csharpprogramer88
بازم جدول شماره 3 برایم گنگه لطفا بیشتر توضیح بدید
مهمترین مشکل شما در طراحی دیتابیس وجود کالاهای مختلف با ویژگیهای مختلف میباشد
همه ی ما میدونیم با توجه به قوانین نرمال سازی ایجاد جدول کالا با ویژگیهای زیاد به گونه ای که برای تمامی کالاها را در بر گیرد درست نیست(افزونگی)
روشهای دیگری رو هم دوستان گفتند که حتما دلیل خاص خودشون رودارند مانند ایجاد جدول برای هر کالا را من پیشنهاد نمیکنم
اما جواب سوال شما
طراحی جدولها با توجه به تصاویر ارسال شده کاملا درسته(پست شماره 37)
جدول شماره 3 همان جدول کالا میباشد
مثلا خودرو یا ساختمان مسکونی و ... که به عنوان کالا در نظر گرفته میشوند لذا فقط نام کالا یا اموال در این قسمت قرار میگیرد
اما هر یک از این کالاها ویژگیهایی دارند به عنوان مثال خودرو ویژگیهایی مانند(مدل - سال تولید - رنگ - تعداد چرخ و...) همچنین ساختمان ویژگیهایی مانند(مسکونی یا تجاری - تعداد اتاق - شماره طبقه - متراژ و ...)
برای حل مساله تطبیق ویژگی هر کالا با کالای مورد نظر روش من به این صورت بود که شما ابتدا فقط نام کالا را در جدول شماره 3(جدول کالا) قرار دهید و ویژگیهای کالا را در جدول شماره 2 قرار دهید
این دو جدول هیچ ارتباطی باهم ندارند و برای تطبیق این ویژگیها با کالاهای مورد نظر از جدول شماره 4 استفاده میکنیم
برای تطبیق ویژگیها با کالاها در جدول شماره 4 به این صورت عمل میکنیم(این جدول درواقع محل نگهداری ویژگیهای هر یک از کالا میباشد)
کد کالا از جدول کالا به شماره 3(معرف خود کالاست) - کد ویژگی کالا از جدول شماره2(معرف ویژگی) و تعداد کالا(count)
به این ترتیب دیگر نیازی به ایجاد جدول برای هر یک ازکالاها نداریم و همچنین هر یک از کالا ها ویژگیهای مخصوص به خود را دارد و هیچ فیلد اضافی برای هیچ یک از کالا ایجاد نمیشود
1 ضمیمه
نقل قول: این جدول را چطوری طراحی کنم ؟
نقل قول:
نوشته شده توسط
Mohammadm
مهمترین مشکل شما در طراحی دیتابیس وجود کالاهای مختلف با ویژگیهای مختلف میباشد
همه ی ما میدونیم با توجه به قوانین نرمال سازی ایجاد جدول کالا با ویژگیهای زیاد به گونه ای که برای تمامی کالاها را در بر گیرد درست نیست(افزونگی)
روشهای دیگری رو هم دوستان گفتند که حتما دلیل خاص خودشون رودارند مانند ایجاد جدول برای هر کالا را من پیشنهاد نمیکنم
اما جواب سوال شما
طراحی جدولها با توجه به تصاویر ارسال شده کاملا درسته(پست شماره 37)
جدول شماره 3 همان جدول کالا میباشد
مثلا خودرو یا ساختمان مسکونی و ... که به عنوان کالا در نظر گرفته میشوند لذا فقط نام کالا یا اموال در این قسمت قرار میگیرد
اما هر یک از این کالاها ویژگیهایی دارند به عنوان مثال خودرو ویژگیهایی مانند(مدل - سال تولید - رنگ - تعداد چرخ و...) همچنین ساختمان ویژگیهایی مانند(مسکونی یا تجاری - تعداد اتاق - شماره طبقه - متراژ و ...)
برای حل مساله تطبیق ویژگی هر کالا با کالای مورد نظر روش من به این صورت بود که شما ابتدا فقط نام کالا را در جدول شماره 3(جدول کالا) قرار دهید و ویژگیهای کالا را در جدول شماره 2 قرار دهید
این دو جدول هیچ ارتباطی باهم ندارند و برای تطبیق این ویژگیها با کالاهای مورد نظر از جدول شماره 4 استفاده میکنیم
برای تطبیق ویژگیها با کالاها در جدول شماره 4 به این صورت عمل میکنیم(این جدول درواقع محل نگهداری ویژگیهای هر یک از کالا میباشد)
کد کالا از جدول کالا به شماره 3(معرف خود کالاست) - کد ویژگی کالا از جدول شماره2(معرف ویژگی) و تعداد کالا(count)
به این ترتیب دیگر نیازی به ایجاد جدول برای هر یک ازکالاها نداریم و همچنین هر یک از کالا ها ویژگیهای مخصوص به خود را دارد و هیچ فیلد اضافی برای هیچ یک از کالا ایجاد نمیشود
اینم یه دیاگرام از توضیحات دوستمون
ضمیمه 107613
نقل قول: این جدول را چطوری طراحی کنم ؟
نقل قول:
نوشته شده توسط
hojjatshariffam
حالا اگه خواستین از این کالا سفارش بدین فقط کافیه یه جدول بسازی و توش کد کالا بزارید کد شخص و مقدار سفارش (یا مقدرا خرید)
کاری با واحد و یا خصوصیات کالا نداشته باشید
واحد ها و خصوصیات رو می تونید در ویو ها و نمایش اونها مدیریت کنید.
نقل قول: این جدول را چطوری طراحی کنم ؟
نقل قول:
نوشته شده توسط
mahan.2002
عزیزم شما مطلب رو کامل بخونید .. بعد متوجه میشید
من یه سوال دارم شما به عنوان مثال چطور یه خونه رو با یک ماشین فیلداشونو یکی میگیرد
کی این حرف رو زد؟
ما داریم بر روی
موجودیت حرف میزنیم. کالاهایی مثل کاشی و سیمان و ... یک موجودیت به نام کالا رو تشکیل میدن. خونه چه ربطی به ماشین داره؟
در پست 38 اینو گفتید :
نقل قول:
شما به ازاء هر نوع کالا باید یک جدول طراحی کنید. مثال میزنم مثلا شما برای یک کالا مانند خانه باید یک جدول جدا طراحی کنید و برای کالا دیگه مثل ماشین یک جدول با فیلد های مخصوص اون یا برای موبایل باید همین طور
اول یاد بگیر که به اینا میگن موجودیت نه کالا، بعدش بیا در بحث شرکت کن.
نقل قول:
در ضمن اپلکشین با اتصال به بانک اطلاعاتی میتونه جداول انلاین در دیتابیس ایجاد کنه.. لازم نیست برنامه نویس یک به یک برای هر جدول اونو تک تک وارد کنه...
جداول پویا و داینامیک اصول خودش رو داره، الکی که نمیشه جدول آنلاین با فیلد داینامیک ایجاد کرد. فیلدهای داینامیک زمانی کاربرد داره که ما از قبل نمیدونیم چه فیلدهایی برای جدول نیاز هست یا اینکه احتمال میدیم که کاربر طبق نیازش دوست داره یک سری فیلدهای جدید رو (که از قبل نمیدونیم) رو اضافه کنه.
نقل قول:
نوشته شده توسط
hojjatshariffam
دوست عزیز من کل پست ها رو از اول دارم پی گیری می کنم کسی نگفته که برا ی هر کالا یه جدول پس برای 10 کالا 10 جدول درست کنید، بلکه این برداشت اشتباه برخی از دوستان است که این برداشت رو می کنند و بعد در مورد همون برداشت اشتباه سئوال می کنند و بقیه هم فکر می کنند که ...
پست 4 و 13 رو ببینید.
ما باید یاد بگیریم به موجودیت بگیم موجودیت، به رابطه بگیم رابطه.
نقل قول:
اگر از روش به قول دوستمون داینامیک در داینامیک استفاده کنید هیچ فیلدی خالی نمی ماند و برنامه کاملا فلکسبل می شود
خب برای اینکه برای همه موارد متغییر یه جدول جداگانه نسازیم میایم جدواولمونو می کنیم سه
جدول اول خود کالا
جدول دوم خصوصیات کالا
جدول سوم برای درج خصوصیات کالا
مثلا کالای شماره یک رنگ داره مقدارشم قرمزه
کالای شماره دو مزه داره مزشم ترشه
کالای شماره سه هم مزه داره و مزش تلخه
کالای شماره 4 ابعاد داره که 15*23 می باشد
کالای شماره 5 هم ابعاد داره هم رنگ
همه اینا در جدول سوم ذخیره میشه (به عنوان یک ردیف نه فیلد)
یعنی در جدول سوم هم کد خصوصیات درج میشه و هم کد کالا و یک مقدار (یعنی این خصوصیت مربوط میشه به فلان کالاو فلان خصوصیت که مقدارشم مثلا x می باشد)
جدول سوم (کالای یک ، خصوصیت رنگ ، مقدار قرمز) / (کالای یک ، خصوصیت ابعاد ، مقدار 10*20) / (کالای دو ، خصوصیت رنگ ، آبی) / (کالای 3 ، خصوصیت ابعاد ، مقدار 20*40)/(کالای 3 ، خصوصیت واحد کالا ، مقدار کیلو)
و هزاران فیلد دیگر.....
جدول کالا می تونه 10000 تا ردیف داشته باشه
جدول نوع خصوصیات می تونه 1000 تا ردیف داشته باشه
جدول خصوصیات می تونه 1000000 تا ردیف داشته باشه
می تونی یک ملیون تا کالا تعریف کنی که هر کدومش حتی هزار تا خصوصیت داشته باشه و تو همون جدول کالا ،کالایی داشته باشی که براش خصوصیتی ثبت نشده باشه
هیچ فیلد خالی هم نداریم
هیچ محدودیتی هم در تعداد کالا یا خصوصیات ندارم
این روش گرچه درسته ولی بستگی به میزان فیلدهایی داره که میتونه برای یک کالا خالی یا پر بشه. فرض کنید ما کلا 7 خصوصیت داشته باشیم (مثل رنگ، مزه و ...). بعضی کالاها ممکنه اکثر خصوصیات رو داشته باشن. در روش شما برای همچین کالایی با فرض اینکه هر 7 خصوصیت رو داشته باشه باید 7 رکورد درج بشه و در هر رکورد هم کد کالا درج بشه در صورتیکه با یک رکورد که شامل 8 فیلد هست، میشه همین کار رو انجام داد. یعنی از تکرار 6 بار کد کالا جلوگیری میشه. همچنین در روش شما برای چنین کالایی کلا باید 7 * 3 = 21 ستون رو مقداردهی کرد ولی میشه همین جدول رو با 8 ستون هم پیاده سازی کرد و همچنین از ایجاد جدولی برای خصوصیات هم جلوگیری کرد. یعنی ما جدولی خواهیم داشت با 8 رکورد که یک فیلد اون کد کالا و 7 فیلد دیگر خصوصیات خواهند بود. تاکید میکنم این روش زمانی موثر هست که اکثریت فیلدها برای هر کالا مقدار داشته باشه و خصوصیات هر کالا رو هم از قبل بدونیم. پس اینطور نیست که همیشه با 3 فیلد یک طراحی بهینه رو داشته باشیم. پس بستگی به نوع پروژه ما داره و باید این مورد بخوبی تحلیل بشه.
نقل قول: این جدول را چطوری طراحی کنم ؟
دقیقا با نظرت شما کاملا موافقم جناب
veniz2008
https://barnamenevis.org/images/statu...ser-online.png
من منظورم از همه مطالب ، مطالب صحیح بود ، در مورد دو گانگی پیش اومده معذرت می خوام
بله درسته باید یاد بگیریم از کلمه موجودیت استفاده کنیم ، از این بابت هم متشکرم
همانطوز که فرمودین بستگی به پروژه داره و این توضیحاتم نه به خاطر این بوده که حتما از این روش استفاده شود.
ضمن اینکه ممکنه از همون خصوصیت برای یک موجودیتی چند تا نیاز باشه که ثبت بشه مثل ده بیست تا تلفن برای موجودیتی مثل مخاطب (اگر در نیاز مندیهای پروژه این طور باشه که نیازه برای هر مخاطب چندین تلفن ، چندین موبایل ، چندین تلفن محل کار و .... ثبت شود. نه اینکه برای هر مخاطب یک یا حد اکثر 3 تلفن به علاوه یک موبایل که در این صورت با 5 تا فیلد حل می شد)
به هر حال مونده به نیازمندی های پروژه
1 ضمیمه
نقل قول: این جدول را چطوری طراحی کنم ؟
سلام
از همه عزیزانی که وقت گذاشتن و به تاپیک جواب دادن ممنونم
احتراما آخرین کدی که باا همکاری دوستان نوشتم را میزارم دوستان نظر دهند
در فرم اول اطلاعات را در جدول 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 استفاده کنم؟
نقل قول: این جدول را چطوری طراحی کنم ؟
نقل قول:
نوشته شده توسط
veniz2008
کی این حرف رو زد؟
ما داریم بر روی موجودیت حرف میزنیم. کالاهایی مثل کاشی و سیمان و ... یک موجودیت به نام کالا رو تشکیل میدن. خونه چه ربطی به ماشین داره؟
در پست 38 اینو گفتید :
اول یاد بگیر که به اینا میگن موجودیت نه کالا، بعدش بیا در بحث شرکت کن.
جداول پویا و داینامیک اصول خودش رو داره، الکی که نمیشه جدول آنلاین با فیلد داینامیک ایجاد کرد. فیلدهای داینامیک زمانی کاربرد داره که ما از قبل نمیدونیم چه فیلدهایی برای جدول نیاز هست یا اینکه احتمال میدیم که کاربر طبق نیازش دوست داره یک سری فیلدهای جدید رو (که از قبل نمیدونیم) رو اضافه کنه.
پست 4 و 13 رو ببینید.
ما باید یاد بگیریم به موجودیت بگیم موجودیت، به رابطه بگیم رابطه.
این روش گرچه درسته ولی بستگی به میزان فیلدهایی داره که میتونه برای یک کالا خالی یا پر بشه. فرض کنید ما کلا 7 خصوصیت داشته باشیم (مثل رنگ، مزه و ...). بعضی کالاها ممکنه اکثر خصوصیات رو داشته باشن. در روش شما برای همچین کالایی با فرض اینکه هر 7 خصوصیت رو داشته باشه باید 7 رکورد درج بشه و در هر رکورد هم کد کالا درج بشه در صورتیکه با یک رکورد که شامل 8 فیلد هست، میشه همین کار رو انجام داد. یعنی از تکرار 6 بار کد کالا جلوگیری میشه. همچنین در روش شما برای چنین کالایی کلا باید 7 * 3 = 21 ستون رو مقداردهی کرد ولی میشه همین جدول رو با 8 ستون هم پیاده سازی کرد و همچنین از ایجاد جدولی برای خصوصیات هم جلوگیری کرد. یعنی ما جدولی خواهیم داشت با 8 رکورد که یک فیلد اون کد کالا و 7 فیلد دیگر خصوصیات خواهند بود. تاکید میکنم این روش زمانی موثر هست که اکثریت فیلدها برای هر کالا مقدار داشته باشه و خصوصیات هر کالا رو هم از قبل بدونیم. پس اینطور نیست که همیشه با 3 فیلد یک طراحی بهینه رو داشته باشیم. پس بستگی به نوع پروژه ما داره و باید این مورد بخوبی تحلیل بشه.
دوست عزیز اینجا همه به خوبی شما مفاهیم محیط عملیاتی ، موجودیت ، مجموعه صفات و... را میدانند
هدف ارائه راه حلهای مختلف برای رسیدن به نتیجه بود که حاصل شد. در ضمن بهتر بود به حساسیت مطرح کننده این موضوع هم توجه نمایید
شما آمدید و راه حلهای ارائه شده را تکرار کردید ولی متوجه منظور یا هدفتون جهت ارائه این پست نشدم
اگر میخواهید صحبت کنید بهتر است با لحن بهتری صحبت کنید در غیر این صورت کسی حاضر به پاسخگویی نخواهد بود
نقل قول: این جدول را چطوری طراحی کنم ؟
بله این کدتون صحیح تر از بقیه می باشد
نقل قول:
- وقتی پس از درج واحد جدید در فرم دو ، دوباره به فرم یک بر میگردم چطوری اطلاعات را از دیتابیس دوباره بخونم و در کومبو بریزم؟ یک راهش میتونه این باشه که یه متغیر عمومی تعریف کنم و پس از خارج شدن از فرم دو اطلاعات را بخونم و بایند کنم راه حل بهتری دارید به من یاد بدید
میتونی اون کد هایی که در متد لود فرمت نوشتی رو به عنوان یه متد بنویسی بعد از برگشت از فرم دوم اول آیتم های کامبوتو پاک کن بعد اون متد رو فراخانی کن (کدهای درون متد لود رو هم پاک کن و به جاش اون متد جدید رو فراخانی کن)
نقل قول:
2- برای گرفتن گزارش های مختلف مثلا نشان دادن کل کالاهای ثبتی بطوریکه واحد کالا هم بعنوان یک ستون گزارش وجود داشته باشه(بعنی از هر 2 جدول بخونم) باید از view استفاده کنم؟
می تونی از ویو استفاده کنی و بعد از به جای سلکت از جدولت از ویو سلکت کنی
ویا اینکه کد اس کیو ال ویو رو خودت بنویسی تو برنامت (یعنی از جوین استفاده کنی ، همون طور که ویو استفاده می کنه)
می تونی از استورد پروسیجر استفاده کنی
و هزاران راه دیگه
نقل قول: این جدول را چطوری طراحی کنم ؟
نقل قول:
بله این کدتون صحیح تر از بقیه می باشد
یعنی میشه روش بهتری از اینی که نوشتم هم داشته باشم؟
نقل قول:
میتونی اون کد هایی که در متد لود فرمت نوشتی رو به عنوان یه متد بنویسی بعد از برگشت از فرم دوم اول آیتم های کامبوتو پاک کن بعد اون متد رو فراخانی کن (کدهای درون متد لود رو هم پاک کن و به جاش اون متد جدید رو فراخانی کن)
اوکی - ولی بعد برگشت به فرم اول چطوری میتونم متد را فراخوانی کنم؟
در فرم لود که نمیتونم بنویسم اگه یه دکمه هم بزارم که روی اون کلیک بشه بازم جالب نمیشه بهترین روش همون فرم لوده ولی چطور بنویسمش؟
نقل قول:
می تونی از ویو استفاده کنی و بعد از به جای سلکت از جدولت از ویو سلکت کنی
ویا اینکه کد اس کیو ال ویو رو خودت بنویسی تو برنامت (یعنی از جوین استفاده کنی ، همون طور که ویو استفاده می کنه)
می تونی از استورد پروسیجر استفاده کنی
و هزاران راه دیگه
اگه میشه لطف کنید و برای این چیزی که فرمودید کد منو تغییر بدید بخصوص "ویا اینکه کد اس کیو ال ویو رو خودت بنویسی تو برنامت (یعنی از جوین استفاده کنی"
نقل قول: این جدول را چطوری طراحی کنم ؟
نقل قول:
نوشته شده توسط
Mohammadm
دوست عزیز اینجا همه به خوبی شما مفاهیم محیط عملیاتی ، موجودیت ، مجموعه صفات و... را میدانند
بنده ادعایی کردم؟
ولی وقتی کسی به ماشین، به خونه، به انسان، به درس و به ... میگه کالا یعنی مفاهیم رو خوب درک نکرده.
من قصد شرکت در این تاپیک رو هم نداشتم. در واقع مدت هاست که خیلی کم در تاپیک ها نظر میدم. دلیلش هم افرادی مثل شماها هست که عادت دارید در هر تاپیکی شرکت کنید و اون تاپیک رو به بیراهه بکشونید. وقتی چیزی رو نمیدونیم نباید به خودمون اجازه بدیم که بیایم و مثل یه دکتر نظر بدیم و بعدش در کمال پر رویی دیگران رو به ندونستن متهم کنیم و با تمسخر بگیم : "نمیدونم دوستان به طراحی جدید در این مورد رسید یه مقاله در این رابطه چاپ کنند ..".
دلیل حضور من در تاپیک پیغام خصوصی بود که ایجاد کننده تاپیک به بنده دادن و گفتن که نیاز به راهنمایی دارن تا راه درست رو تشخیص بدن.
نقل قول:
شما آمدید و راه حلهای ارائه شده را تکرار کردید ولی متوجه منظور یا هدفتون جهت ارائه این پست نشدم
شما هم که دقیقا مثل همین کاربر بی منطق حرف میزنید. پست 47 بنده رو (اولین پستم در این تاپیک) دوباره مطالعه کنید. من گفتم یکی از دوستان راه مناسبی رو ارائه داده. من که دنبال دزدیدن و ثبت اختراع دیگران به اسم خودم نبودم. ما توی طراحی یک اصولی داریم که از بنده تا بزرگترین طراح دیتابیس دنیا این اصول رو رعایت میکنه. حالا یک نفر اومده راه درستی رو گفته من بیام از خودم راه جدید در بیارم؟، بگم فلانی اشتباه گفته و راه اشتباهی رو بگم؟
نقل قول:
اگر میخواهید صحبت کنید بهتر است با لحن بهتری صحبت کنید در غیر این صورت کسی حاضر به پاسخگویی نخواهد بود
من عادت دارم رک حرف بزنم. حرفم رو رودررو میگم که مبادا حرفی بمونه تا پشت سر دیگران گفته بشه.
نقل قول: این جدول را چطوری طراحی کنم ؟
نقل قول:
نوشته شده توسط
csharpprogramer88
یعنی میشه روش بهتری از اینی که نوشتم هم داشته باشم؟
بهتره از معماری های نرم افزار (مثلا معماری سه لایه و ...) استفاده کنید و اصول برنامه نویسی هم رعایت شود ولی چون مبحث کد نبوده و روش استفاده بوده جای بحثش نیست
نقل قول:
نوشته شده توسط
csharpprogramer88
اوکی - ولی بعد برگشت به فرم اول چطوری میتونم متد را فراخوانی کنم؟
در فرم لود که نمیتونم بنویسم اگه یه دکمه هم بزارم که روی اون کلیک بشه بازم جالب نمیشه بهترین روش همون فرم لوده ولی چطور بنویسمش؟
خب بعد اینکه فرم دوم رو ShowDialog کردین در خط بعدی متد نوشته شده رو فراخانی کنید(این یه ورشه ، می تونید از نماینده ها و ایونت ها و یا حتی ساده تر از DialogResult استفاده کنید ....)
نقل قول:
نوشته شده توسط
csharpprogramer88
اگه میشه لطف کنید و برای این چیزی که فرمودید کد منو تغییر بدید بخصوص "ویا اینکه کد اس کیو ال ویو رو خودت بنویسی تو برنامت (یعنی از جوین استفاده کنی"
خب خودت یه ویو درست کن و کد اس کیو الی که اون ویو درست می کنه رو کپی کن و تو برنامت ازش استفاده کن
نقل قول: این جدول را چطوری طراحی کنم ؟
نقل قول:
هتره از معماری های نرم افزار (مثلا معماری سه لایه و ...) استفاده کنید و اصول برنامه نویسی هم رعایت شود ولی چون مبحث کد نبوده و روش استفاده بوده جای بحثش نیست
پس روش طراحی دیتابیس درسته؟ البته یکی از دوستان در پست 35 نظری دادن که بعد به نتیجه رسیدن این روش میخوام اون روش را هم بررسی کنم
نقل قول:
خب بعد اینکه فرم دوم رو ShowDialog کردین در خط بعدی متد نوشته شده رو فراخانی کنید(این یه ورشه ، می تونید از نماینده ها و ایونت ها و یا حتی ساده تر از DialogResult استفاده کنید ....)
لطف کن و یه نمونه کد از این روش بده چون روی روشی که گفتید از تابع استفاده کنم خودم هم حدس میزدم اینجور باشه ولی نمیدونم توی کدوم رویداد اینکارو کنم
نقل قول: این جدول را چطوری طراحی کنم ؟
از تمامی دوستانی که زحمت کشیدن و در بحث مشارکت کردن ممنونم
از جناب veniz2008 هم که با پیام خصوصی در بحث مشارکت کردن ممنونم