PDA

View Full Version : طراحی دیتابیس کتابخانه



سعید کشاورز
شنبه 09 دی 1391, 15:09 عصر
سلام ..
دارم یه برنامه واسه مدیریت کتابخونه مینویسم..در طراحی دیتابیس یه سوال واسم پیش اومده..
فرض کنید ما در کتابخونه از کتاب آموزش سی شارپ 5 تا داریم .

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

s.hoseinpoor
شنبه 09 دی 1391, 15:44 عصر
کاملا درسته.باید همین کارو بکنی .
اما قرار نیست کار کم کردن کتابارو دستی بکنی کافیه با SQl مقدار فیلد تعداد رو بدست بیاری و یکی کم کنی. در جدول نمایش هم می تونی تعداد موجود رو نشون بدی

سعید کشاورز
شنبه 09 دی 1391, 15:53 عصر
کاملا درسته.باید همین کارو بکنی .
اما قرار نیست کار کم کردن کتابارو دستی بکنی کافیه با SQl مقدار فیلد تعداد رو بدست بیاری و یکی کم کنی. در جدول نمایش هم می تونی تعداد موجود رو نشون بدی
فکر کنم باید از Trigger استفاده کنم...میخاستم بدونم واسه استفاده از Trigger باید دو تا جدول داشته باشم یا با یه جدول هم کارم راه میوفته؟

ebrahimi6357
پنج شنبه 17 اسفند 1391, 00:56 صبح
به نظر من اگه دیتابیست زیاد حجیم نیست نیازی به اون راه نداری
فقط کافیه یه فیلد تعداد تو جدول کتاب قرار بدی
و هر بار از جدول امانت با خواندن تعداد کتابهای بیرون داده شده و کسر از این فیلد تعداد کتابهای موجود بدست میاد

رامین مرادی
یک شنبه 20 اسفند 1391, 16:43 عصر
نيازي نيست اين همه واسه خودتون زحمت بديد.
شما يك ستون به عنوان وضعيت انتخاب كنيد
البته بهتره شما ابتدا مشخصات يك كتاب رو ذخيره كنيد سپس يك جدول ديگه بسازيد با عنوان ثبت نسخه كه هر چند تا مي خوايد ثبت كنيد
سپس يك ايترپروسيجر بنويسيد كه هنگام امانت دادن جدول نسخه به روز رساني بشه يعني يكي از كتابها كم بشه و بر عكس تو برگشت كتاب هم اون جدول رو بروزرساني كنيد با افزاريش اون كتاب

behrozi.ir
یک شنبه 20 اسفند 1391, 16:52 عصر
سپس يك جدول ديگه بسازيد با عنوان ثبت نسخه كه هر چند تا مي خوايد ثبت كنيد
سلام
شما قوانین نرمال سازی را بردین زیر سوال ( طراحی دیتا با حداقل افزونگی و پیچیدگی)
احتیاجی به جدول دوم نیست
یک فیلد به نام ( Count) به جدول اضافه کن ، در موقع امانت دادن یکی ار آن کم کن و در موقع تحویل یکی اضافه
فکر کن

behrozi.ir
یک شنبه 20 اسفند 1391, 17:01 عصر
اینم یک نمونه از دیتابیس کتابخانه همین الان دادم بچه ها نوشتن
بچه های ما هم زرنگ شدن

خط 9 را دقت کن


create table book
(b_code int primary key,
name nchar(50),
writer nchar(50),
btype nchar(10),
shabak int,
publishment nchar(50),
publishyear nchar(30),
entity int)

create table member
(m_code int primary key,
name nchar(50),
addres nchar(50),
tel nchar(11),
registeration_date date,
education_degree nchar(50))

create table karmand
(k_code int primary key,
username nvarchar(50),
name nchar(50),
semat nchar(50),
pass nvarchar(50))

create table borrow_list
(b_code int,
k_code int,
m_code int,
delivery_date date,
foreign key (b_code) references book,
foreign key (k_code) references karmand,
foreign key (m_code) references member)