PDA

View Full Version : سوال: پروژه sql



zahramoini
چهارشنبه 01 مهر 1388, 17:19 عصر
سلام
من یکsql کار تازه واردم دیتا بیس آزمون الکترونیک را به عنوان تمرین باید انجام بدم که شخص اسمش و نام درسی که می خواد را وارد کنه سپس سوالات برایش فعال می شود و بعد نمره نهایی بهش داده میشه راستش نمی دونم جدولی هم برای وارد کردن سوالات باید درست کنم یا اون مربوط به قسمت ویژوالش است لطف کنید راهنمایی ام کنید.
مرسی

mojtaba.baghban
پنج شنبه 02 مهر 1388, 18:43 عصر
به نظر من باید جدولی برای سوالها داشته باشی

zahramoini
پنج شنبه 02 مهر 1388, 18:50 عصر
یعنی به فرض اگه 5 تا درس هست من باید 5 تا جدول که هر کدوم سوالات مربوط به اون درسه را درست کنم؟

mojtaba.baghban
پنج شنبه 02 مهر 1388, 19:12 عصر
به نظر من یه جدول واسه درسها ویه جدول واسه سوالها با ستونی که به درس اشاره داشته باشد بصورت زیر

create table course
(
courseID int primary key not null,
courseName nvarchar(70) not null
)
GO
create table questions
(
numQustion tinyint not null,
courseID int foreign key references cource(courceID),
question nvarchar(200) not null,
primary key(numQustion,courseID)
)

zahramoini
دوشنبه 06 مهر 1388, 07:47 صبح
خیلی ممنون از راهنمایی تون ، من 5 تا جدول درست کردم:1)جدول نام درسها2)مشخصات کاربر3)سوالات به همراه گزینه ها4)جدول پاسخنامه5)جدول پاسخ های صحیح
بعد باید نتایج به صورت زیر اعلام بشه:تعداد سوالات،تعداد پاسخهای درست،پاسخهای غلط،،بدون پاسخها و نمره نهایی
لطفاً راهنمایی ام بکنید که تابع بنویسم یا باید یک جدول درست کنم ،به چه صورت؟
ممنون

mojtaba.baghban
دوشنبه 06 مهر 1388, 09:23 صبح
من نمی دونم جداول پاسخ نامه و پاسخ های صحیح را چگونه طراحی کردی به نظر من دو تا جدول یکی واسه پاسخهای صحیح و یکی واسه پاسخهای کاربر به شکل زیر تعریف بشه

create table answers
(
courseID int foreign key references cource(courceID),
numQustion tinyint not null,
correctItem tinyint not null,
primary key(numQustion,courseID)
)
و

create table answerUser
(
userID int foreign key references users(userID) not null,
courseID int foreign key references cource(courceID),
numQustion tinyint not null,
selectItem tinyint not null,
primary key(numQustion,courseID,userID)
)
همچنین از آنجا که هر سوال چند گزینه دارد رابطه بین آنها یک به چند است لذا سوال و گزینه ها را با هم در یک جدول نمی آوریم بلکه جدول دیگری برای گزینه ها به شکل زیر تعریف می کنیم

create table items
(
courseID int foreign key references cource(courceID),
numQustion tinyint not null,
numItem tinyint not null,
item nvarchar(150) not null,
primary key(numQustion,courseID,numItem)
)

zahramoini
دوشنبه 06 مهر 1388, 12:10 عصر
ممنونم خیلی کمکم کردید اما نمی دونم برای تعدادسوالات غلط و درست چه شکلی باید selectitem و correctitem را باهم مقایسه کنم من از حلقه while دستور if استفاده کردم ولی چه شکلی رکورد رکورد جلو ببرم؟

mojtaba.baghban
دوشنبه 06 مهر 1388, 13:04 عصر
کدهای بالا یه خورده اشکال داره باید بصورت زیر باشد

create table answers
(
courseID int not null,
numQustion tinyint not null,
correctItem tinyint not null,
primary key(numQustion,courseID),
foreign key (numQustion,courseID) references questions(numQuestion,courceID)
)


create table answerUser
(
userID int foreign key references users(userID) not null,
courseID int not null,
numQustion tinyint not null,
selectItem tinyint not null,
primary key(numQustion,courseID,userID),
foreign key (numQustion,courseID) references questions(numQuestion,courceID)
)


create table items
(
courseID int not null,
numQustion tinyint not null,
numItem tinyint not null,
item nvarchar(150) not null,
primary key(numQustion,courseID,numItem),
foreign key (numQustion,courseID) references questions(numQuestion,courceID)
)

برای جواب پست قبلیتون باید پرس و جو بنویسید اگه نتونستید بگید تا بنویسم