PDA

View Full Version : سوال در خصوص یک پروژه با دیتابیس access



barman.ar16
شنبه 20 آذر 1395, 12:07 عصر
سلام به اساتید گرامی
من یک پروژه دارم که دیتابیسش اکسس هست...
توی این پروژه میخوام اطلاعات پرسنل رو جستجو روئیت و ویرایش و در نهایت چاپ کنم
خب کدنویسی مورد نیاز برای این اعمال رو میدونم و انجامش میدم اما مشکل کارم یک جایی دیگه هست
اینکه اطلاعات پرسنل برای 1100 نفر هست و برای هر کدوم از این پرسنل باید 35 خصیصه رو ثبت کنم مثل نام و نام خانوادگی و کد پرسنلی و ... که در واقع میشه جدولی با 35 ستون ...!!!
خب به نظرتون کار منطقی هست که این روش رو در پیش بگیرم و جدولی با 35 ستون تهیه کنم و کل اطلاعات رو توی اون بریزم و عملیات ها رو روی اون انجام بدم ... برنامه کند نمیشه به راحتی انجام میشه؟؟؟
اگر نه چطوری بیام جدول رو به جداول کوچکتر تقسیم کنم و اطلاعات رو تقسیم بندی کنم و درنهایت بینشون رابطه ایجاد کنم ... اینکار شدنی هست یا خیر؟؟
ممنون میشم راهنمایی بفرمائید
در ضمن از این کد ها استفاده می کنم :
private int EditID = 0;
private static string Connection = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Application.StartupPath + @"\MyDatabase.accdb";

سپس برای نمایش در دیتا گرید ویو:

OleDbConnection con = new OleDbConnection(Connection);
OleDbDataAdapter da=new OleDbDataAdapter("Select * From MTable",con);
DataSet ds=new DataSet();
da.Fill(ds);
dataGridView1.DataSource = ds.Tables[0].DefaultView;

و برای درج اطلاعات :

OleDbConnection con = new OleDbConnection(Connection);
OleDbCommand com = new OleDbCommand("Insert Into MyTable(FullName,Tell,Email) Values (@FullName,@Tell,@Email)", con);
com.Parameters.AddWithValue("@FullName", txtName.Text);
com.Parameters.AddWithValue("@Tell",txtTell.Text);
com.Parameters.AddWithValue("@Email",txtEmail.Text);
con.Open();
com.ExecuteNonQuery();
con.Close();
و الی آخر ...

دلتنگ اسمان
شنبه 20 آذر 1395, 14:05 عصر
با سلام
این که برای هر شخصی بخوای 35 خصیصه در نظر بگیری برمیگرده به نیاز شما در سیستم کاری تون. و اگه واقعا چنین چیزی نیاز باشه اشکالی نداره شما جدولی با 35 ستون داشته باشید.
تقسیم کردن به جداول کوچک برای مدیریت بهتر و هم جلوگیری از افزونگی داده ها می باشد. در مورد بهینه سازی پایگاه داده جستجو کنی مطلب زیاده . کمکتون میکنه تا بهتر تصمیم بگیرید.

barman.ar16
شنبه 20 آذر 1395, 19:42 عصر
با سلام
این که برای هر شخصی بخوای 35 خصیصه در نظر بگیری برمیگرده به نیاز شما در سیستم کاری تون. و اگه واقعا چنین چیزی نیاز باشه اشکالی نداره شما جدولی با 35 ستون داشته باشید.
تقسیم کردن به جداول کوچک برای مدیریت بهتر و هم جلوگیری از افزونگی داده ها می باشد. در مورد بهینه سازی پایگاه داده جستجو کنی مطلب زیاده . کمکتون میکنه تا بهتر تصمیم بگیرید.

ممنون دوست عزیز از اینکه وقت گذاشتید
در واقع من اگر بتونم با یک جدول کارم رو راه بندازم خب خیلی بهتره و اگر با کندی یا مشکل برنخورم اینطوری راحتترم برای کد نویسیش هم راحت تر هست دیگه نیازی هم به ارتباط دادن بین جداول پیش نمیاد
ممنون از لطفتون

دلتنگ اسمان
یک شنبه 21 آذر 1395, 10:12 صبح
ممنون دوست عزیز از اینکه وقت گذاشتید
در واقع من اگر بتونم با یک جدول کارم رو راه بندازم خب خیلی بهتره و اگر با کندی یا مشکل برنخورم اینطوری راحتترم برای کد نویسیش هم راحت تر هست دیگه نیازی هم به ارتباط دادن بین جداول پیش نمیاد
ممنون از لطفتون

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

barman.ar16
یک شنبه 21 آذر 1395, 17:35 عصر
ببینید دوست عزیز
مثال میزنم تا مساله بهتر جا بیفته.
شما مشخصات پرسنلی رو که معمولا مشخصات ثابت هستن و تغییری نمیکنن رو در یه جدول قرار میدن. و موارد دیگر مثلا ورود و خروج که هر روز اطلاعات جدیدی بهش اضافه میشه رو در جدول دیگه قرار میدن.
میدونی چرا؟
به خاطر اینکه اگه همه اینها رو در یه جدول قرار بدی با هر ورود و خروج ،مشخصات پرسنل هم در هر رکورد تکرار میشن و این یعنی تکرار بی جهت داده ها و افزونگی داده که باعث حجیم شدن دیتابیس و مشکلات دیگه میشه.


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