سلام
دوست عزیز توی جداول باید یه جدول که مشخصات خود کتابخانه اعم از نام کتابخانه، آرم، تلفن ، فاکس ، آدرس و غیره که توی فرم های گزارش بیشتر استفاده میشه هم طراحی کنی
سلام
دوست عزیز توی جداول باید یه جدول که مشخصات خود کتابخانه اعم از نام کتابخانه، آرم، تلفن ، فاکس ، آدرس و غیره که توی فرم های گزارش بیشتر استفاده میشه هم طراحی کنی
خوب این که مشخصه نام کتاب های امانت گرفته شده باید رشته ای تعریف بشه و شماره کتاب های امانت گرفته شده باید از نوع int تعریف بشه .نوشته شده توسط mahdi7s [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
هر کتابی که خریداری شده توسط مدیر کتابخونه یک شماره منحصر به فرد روی جلدش نوشته شده که در واقع مثل یک شماره شناسنامه برای اون کتاب هست . پس واسه هر کتاب باید یک شماره ثبت در نظر بگیری
وقتی کاربری این کتاب را به امانت می بره برای شما ملاک اون شماره هستش .
به نظر من باید یک فرم طراحی بشه و اعمال ثبت کتاب امانت گرفته شده را باهاش انجام داد و یک دیتاگرید هم برای نشون دادن اون مشخصات . و جدولش هم توی پایگاه داده طراحی بشه .
سپس 4 عمل اصلی باید روی این فرم انجام بشه تا وقتی کاربر کتاب را پس اورد از لیست کتابهای امانت گرفته شده حذف بشه .
و اگه کتابی به امانت برده شده یک سری از مشخصاتش توی این قسمت وارد بشه .
حتی میشه یک مقدار کتابخونه را گسترش داد . مثلا یک قسمت را در نظر گرفت برای اینکه اگه کاربری یک کتاب را خواست و اون کتاب به امانت برده شده بود و توی کتابخونه نبود بتونیم بهش بگیم که این کتاب در چه تاریخی قراره به کتابخونه توسط کاربری که به امانت برده شده برگردونده بشه .
در ضمن یک فیلد هم باید برای تمدید کتاب در نظر گرفته بشه . توی همون قسمت کتابهای امانت گرفته شده باید یک فیلد دیگه اضافه کنید واسه تمدید کتاب . چون ممکنه کاربری همون کتاب را بخواد برای یک مدت دیگه تمدید کنه . پس نیاز نیست دوباره مشخصات اون کتاب و کاربر را یاداشت کنیم . کافیه توی همون قسمت جلوی فیلد تمدید تاریخ مراجعه بعدی کتاب را وارد کنیم .
موفق باشی
با سلام
ممنون نکته ی خوبی بود.دوست عزیز توی جداول باید یه جدول که مشخصات خود کتابخانه اعم از نام کتابخانه، آرم، تلفن ، فاکس ، آدرس و غیره که توی فرم های گزارش بیشتر استفاده میشه هم طراحی کنی
مزاحم میشیممن ویبی کار میکنم . و میخوام با سی شارپ هم آشنا بشم ، اگه میشه بعد از ساخت دیتا بیس ، فرم هارو تفسیم کنید تا ما هم یه جاشو انجام بدیم
خوب مشکل همینجاست که یک عضو می تونه بیشتر از یک کتاب به امانت بگیره و ما باید از آرایه ی عدد صحیحخوب این که مشخصه نام کتاب های امانت گرفته شده باید رشته ای تعریف بشه و شماره کتاب های امانت گرفته شده باید از نوع int تعریف بشه .
هر کتابی که خریداری شده توسط مدیر کتابخونه یک شماره منحصر به فرد روی جلدش نوشته شده که در واقع مثل یک شماره شناسنامه برای اون کتاب هست . پس واسه هر کتاب باید یک شماره ثبت در نظر بگیری
استفاده کنیم.(منظورم جدول اعضای فعلی است که باید تغییر کند.)
به هر حال کمی فکر کردم و دیدم برای امانت بهتر است کمی جداول تغییر کنند.
مثلا فیلدهای مربوط به امانت از جدول اعضا رو حذف و بجاش یه فیلد بولین در به نام "امانت گرفته شده" در جدول کتب بذاریم که اگر اون کتب امانت گرفته شده برن توی جدول امانات و ببینن کی گرفتتشو ...
اینها که حتمی است!!!به نظر من باید یک فرم طراحی بشه و اعمال ثبت کتاب امانت گرفته شده را باهاش انجام داد و یک دیتاگرید هم برای نشون دادن اون مشخصات...
ممنون نکته خوبی بود.در ضمن یک فیلد هم باید برای تمدید کتاب در نظر گرفته بشه . توی همون قسمت کتابهای امانت گرفته شده باید یک فیلد دیگه اضافه کنید واسه تمدید کتاب . چون ممکنه کاربری همون کتاب را بخواد برای یک مدت دیگه تمدید کنه . پس نیاز نیست دوباره مشخصات اون کتاب و کاربر را یاداشت کنیم . کافیه توی همون قسمت جلوی فیلد تمدید تاریخ مراجعه بعدی کتاب را وارد کنیم .
راستی یک سوالی هم واسم پیش اومد => ما نمی تونیم یه فیلد از نوع آرایه تعریف کنیم و اونو به صورت کامبو باکس در گریدویو نمایش بدیم؟
سلام
دوستان ببخشید چند نکته بود که من می خواستم توضیح بدم
شما اگر از بانکهای رابطه ای استفاده کنید دیگه نیاز به انجام این همه کارهای پیچیده ندارید
بزارید بحث رو یه کم باز تر کنیم شما وقتی برای هر فرد یک شماره عضویت منحصر به فرد تعریف می کنید نیاز نیست در جداول دیگه ای مثل (کتابهای امانت داده شده) دوباره بیاید نام و نام خانوادگی فردی که کتاب رو امانت گرفته ذخیره کنید کافی فقط شماره عضویت شخص ذخیره بشه و در هنگام فراخوانی بوسیله دستورات SQL بیاید نام ،نام خانوادگی، نام کتاب و ... فردی که شماره عضویت اون در جدول (کتابهای امانت داده شده) وجود دارد رو نمایش بدید
با این توضیحات با اجازه شما بنده جداول رو به شکل زیر اصلاح می کنم
مشخصات مدیر کتابخانه
{
شماره مدیریت(همون آیدی) / نام / نام خانوادگی / جنسیت / نام پدر / شماره شناسنامه / تاریخ تولد / تصویر / تاریخ شروع مدیریت / تاریخ اتمام مدیریت / تلفن منزل / تلفن همراه / آدرس منزل / توضیحات
}
مشخصات کتابدارن کتابخانه
{
شماره عضویت / نام / نام خانوادگی / جنسیت / نام پدر / شماره شناسنامه / تاریخ تولد / تصویر / تاریخ شروع به کار / تاریخ اتمام کار / تلفن منزل / تلفن همراه / آدرس منزل / توضیحات
}مشخصات مسئولان کتابخانه
{
شماره عضویت / نام / نام خانوادگی / جنسیت / نام پدر / شماره شناسنامه / تاریخ تولد / تصویر / تاریخ شروع به کار / تاریخ اتمام کار / پست در کتابخانه / تلفن منزل / تلفن همراه / آدرس منزل / توضیحات
}
حالا فیلد پست در کتابخانه می تونه شامل مدیریت یا کارکنان باشه
مشخصات اعضای کتابخانه
{
شماره عضویت / نام / نام خانوادگی / جنسیت / نام پدر / شماره شناسنامه / تاریخ تولد / تصویر / تاریخ عضویت / تاریخ اتمام عضویت / نام کتابهای امانت گرفته شده / شماره ی کتاب های امانت گرفته شده(مخفی) / تلفن منزل / تلفن همراه / آدرس منزل / توضیحات
مشخصات اعضای کتابخانه
{
شماره عضویت (منحصر به فرد) / نام / نام خانوادگی / جنسیت / نام پدر / شماره شناسنامه / تاریخ تولد / تصویر / تاریخ عضویت / تاریخ اتمام عضویت / تلفن منزل / تلفن همراه / آدرس منزل / وضعیت / توضیحات
فیلد وضعیت در رکود مشخصات اعضا نگهدارنده وضعیت فرد می باشد (عادی ، لیست سیاه ، اخراج موقت)
کتابهای امانت داده شده
{
شماره کتاب در کتابخانه / نام کتاب / موضوع کتاب / نویسنده / مترجم / عکس روی جلد / نام فردی که کتاب را امانت گرفته / نام خانوادگی فردی که کتاب را امانت گرفته / شماره عضویت فردی که کتاب را امانت گرفته(مخفی) / توضیحات
}کتابهای امانت داده شده
{
شماره کتاب در کتابخانه / شماره عضویت فردی که کتاب را امانت گرفته / تاریخ شروع امانت / تاریخ بازگشت کتاب / توضیحات
}
در این جدول فیلدهای شماره کتاب در کتابخانه و شماره عضویت باید به صورت منحصر به فرد (PrimaryKey) باشد
افرادی که موقتا اخراج شده اند
{
شماره عضویت / نام / نام خانوادگی / جنسیت / نام پدر / شماره شناسنامه / تاریخ تولد / تصویر / تاریخ عضویت / تاریخ اتمام عضویت / نام کتابهای امانت گرفته شده / شماره ی کتاب های امانت گرفته شده(مخفی) / تلفن منزل / تلفن همراه / آدرس منزل / دلیل اخراج موقت / توضیحات
}افرادی که موقتا اخراج شده اند
{
شماره عضویت / دلیل اخراج موقت / توضیحات
}افرادی که اخراج شده اند
{
شماره عضویت / نام / نام خانوادگی / جنسیت / نام پدر / شماره شناسنامه / تاریخ تولد / تصویر / تاریخ عضویت / تاریخ اتمام عضویت / نام کتابهای امانت گرفته شده / شماره ی کتاب های امانت گرفته شده(مخفی) / تلفن منزل / تلفن همراه / آدرس منزل / دلیل اخراج / توضیحات
}
افرادی که اخراج شده اند
{
شماره عضویت / نام / نام خانوادگی / جنسیت / نام پدر / شماره شناسنامه / تاریخ تولد / تصویر / تاریخ عضویت / تاریخ اتمام عضویت / تلفن منزل / تلفن همراه / آدرس منزل / دلیل اخراج / توضیحات
}
لیست سیاه(افراد بی نظم)
{
شماره عضویت / نام / نام خانوادگی / جنسیت / نام پدر / شماره شناسنامه / تاریخ تولد / تصویر / تاریخ عضویت / تاریخ اتمام عضویت / نام کتابهای امانت گرفته شده / شماره ی کتاب های امانت گرفته شده(مخفی) / تلفن منزل / تلفن همراه / آدرس منزل / علت بی نظمی / توضیحات
}لیست سیاه(افراد بی نظم)
{
شماره عضویت / علت بی نظمی / توضیحات
}
امیدوارم تونسته باشم کمک کوچکی برای ساخت این پروژه شما کرده باشم
سلامنوشته شده توسط mahdi7s [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
دوست عزیز شما می تونید بجای اینکه کل کتابهای امانت گرفته شده توسط یک شخص رو در جدول اعضا ذخیره کنید یک جدول آرشیو درست کنید وکتابهایی که توسط یه فرد به امانت گرفته شده و سپس برگردونده رو با شماره عضویتش در اون جدول ذخیره کنی
با سلام
ممنون تموم جداول رو به همین شکلی که شما میگین تغییر خواهم داد.شما اگر از بانکهای رابطه ای استفاده کنید دیگه نیاز به انجام این همه کارهای پیچیده ندارید...
و اما منظورتون از بانک رایطه ای ایجاد ارتباط بین جداول بانک هست؟
اگه کمی در این مورد بیشتر توضیح بدین و بگید چه جوری این کارو انجام بدم ممنون میشم.
منظورتونو متوجه نشدم . یعنی برای هر نفر یک جدول بسازم؟دوست عزیز شما می تونید بجای اینکه کل کتابهای امانت گرفته شده توسط یک شخص رو در جدول اعضا ذخیره کنید یک جدول آرشیو درست کنید وکتابهایی که توسط یه فرد به امانت گرفته شده و سپس برگردونده رو با شماره عضویتش در اون جدول ذخیره کنی
دوستان دیگه اگه در مورد جداول نظری دارن زود بگنا
چون تا یه زمانی دیگه جداولو بیخیال و به سراغ کد نویسی و ... میریم.
ممنون
من با naser_feb8646 موافقم ، اصلا راه درستش همینه .
راستی ، عنوان تایپیک رو هم تغییر بدید .
سلام
ببینید دوست عزیز شما اگر جداول رو به شکل قبلی که خودتون گفته بودید طراحی می کردید می تونستید با یه دستور Select مثلاً از جدول کتابهای امانت داده شده اطلاعات مربوط به یک شخص رو واکشی کنیدو اما منظورتون از بانک رایطه ای ایجاد ارتباط بین جداول بانک هست؟
اگه کمی در این مورد بیشتر توضیح بدین و بگید چه جوری این کارو انجام بدم ممنون میشم
کد نمونه
الان با این دستور کل کتابهای امانت گرفته شده مربوط به شخصی که نام خانوادگی اون جعفری هست رو نمایش می دهکد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
اما اشکال این نوع بانکها این که اطلاعات چندین و چند بار به صورت تکراری در دیتابیس ذخیره میشه و بعد از مدتی حجم دیتابیس شما خیلی بالا میره
حالا اگر جداول رو به صورت جدید که گفته شد طراحی بشه باز هم با یک دستور select ولی پیشرفته تر میشه همان اطلاعات رو دوباره از دیتابیس واکشی کرد
کد نمونه
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیددر مورد این سوال هم شما وقتی که یک شخص کتابی رو امانت گرفت و سپس بازگردوند باید اطلاعات از جدول امانت پاک بشه ولی حالا ما می خوایم برای بعد اطلاعات کلی یک فرد رو داشته باشیم که مثلاًً در طول سال چند کتاب امانت گرفته چه کتابهایی بوده و غیره پس باید اطلاعات در یک جا ثبت بشه که بعداً از اون استفاده بشهمنظورتونو متوجه نشدم . یعنی برای هر نفر یک جدول بسازم؟
اگر اطلاعات رو از جدول پاک نکنید بعد از مدتی حجمش بالا می ره و برای واکشی کل اطلاعات از دیتابیس زمان بیشتری صرف میشه پس اطلاعاتی که قرار پاک بشه رو در یک جدول دیگ مانند همون جدول امانت ولی به نام آرشیو امانات ذخیره می کنید و بعداً در گزارشات خودتون ازش جدول آرشیو استفاده می کنید
خب ، یکی ساخت دیتا بیس رو شورع کنه . موجودیت ها که مشخص شد ، رابطه بینشونم که داره مشخص میشه .
از چه بانکی میخواید استفاده کنید ؟ به نظر من SQL Server خوبه .
با سلام
1) اگه ما بیایم و روابط بین جداول رو به وسیله ی VS انجام بدیم بازم باید برای ایجاد ارتباط از دستور JOIN استفاده کنیم؟
2)آیا این برنامه به صورت شبکه کار می کند؟
=================================================
در مورد جدول آرشیو امانات هم بهتره نباشه و بجاش یه فیلد بولیین در جدول کتب باشه تا بفهمیم کتاب امانت گرفته شده یا نه.
هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)