PDA

View Full Version : طراحی جداول برای پروژه رزرو نو بت آنلاین



shahabedeen
دوشنبه 03 شهریور 1382, 09:14 صبح
تعریف پروژه:
کاربر به سایت اینترنتی مرکز مراجعه نموده و در صورت نداشتن یوزر و پسورد انرا با ثبت نام و تکمیل فرم اطلاعات شخصی بدست میآورد.
آنگاه با پوزر معتبر به منشی اکترونیکی مرکز مراجعه نموده و از او نوبت می گیرد!
در واقع بر اساس کانسترینتها و spو بقیه اعمال جامعیت sql server2000به او نوبت داده می شود.(چگونه؟)
آنگاه کاربر در صورت علاقه می تواند نوبت پیشنهادی را نپذیرفته و نوبتی جدید با کمک دراپ داون لیست درخواست کند که در خاصیت کلیک باتن جستجوی در بانک نوبت نوشته شده و جواز پذیرش یا رد به او داه میشود.
در صورت امکانپذیر بودن ،آن نوبت اشغال شده و دیگر به کاربران بعدی پیشنهاد نشده و اعلام نمیگردد.
در ضمن چند روز پیش از نوبت مقرر برای کاربر ایمیلی یادآورنده فرستاده می شود.
---------------------------------------------------------------
*جداول
1-جدول اطلاعات لازم کاربر>فیلدهای مورد نیاز
1-id>int>Foreign Key+Primary Key
که این آی دی در واقع همان شماره اشتراک مشترک که منحصر بفرد بوده و با کمک یوزر نیم و پسورد برای اعتبار سنجی کاربر بکار میرود.
میتوان از یوزر و پسورد تنها هم جهت اعتبار سنجی استفاده کرد.
2-user_name>nvarchar
3-password>nchar
4-email>nchar
2- جدول اطلاعات تفصیلی کاربر>
1-Id>int -Foreign Key
2-Name>nvarchar
3-Family >nvarchar
4-bornDate > char
5-ssn>
6-PostCode>

7-Address>
8-Tel>
9-Degree>DropDownlist>varchar

3-جدول نوبت مشاوره>
1-id>Foreign key
2-Days>Date?
جناب ودود در مورد فیلدها و کلیه مطالبی که لحاظ نشده عنایت بفرماید.
با تشکر :wink:

*محدودیتها(Constraints)
1-روزهای مشاوره در مرکز محدود به شنبه تا پنج شنبه 8تا12 صبح و 6تا 9 بعد از ظهر می باشد.
:idea:

vadood
سه شنبه 04 شهریور 1382, 22:47 عصر
ببخشید که نتونستم سوال شما رو با حوصله بخونم، ولی من معمولا یاهو آنلاین هستم و می تونین اونجا درباره پروژه شما بحث کنیم.

در ضمن، چرا all the ways end to HER نباشه؟ :wink:

shahabedeen
چهارشنبه 05 شهریور 1382, 16:14 عصر
در مورد پروژه دقیقا باید به کدام قسمت یاهو بیایم تا شما را پیدا کنم؟

------------------------------------------------------------
و در مورد سوال جالب کسی که قهرمان او (نه قهرمان ما!) شکست خورده
و در واقع قافیه را بدجوری باخته!
جناب ودود
باید بگویم
شخصا انسانی هستم که با تحقیق همه چیز را انتخاب میکنم.
بدور از هرگونه تعصب کور!
مشخصا از Him منظورم فرد خاصی است که مرد هم می باشد.
و در ضمن او برخلاف قهرمان شما هرگز فرو نمی افتد! :wink:
و
این
دلیل آنست
که همه راهها به وی ختم میشود.


اگر شما خانمی :shock: را می شناسید که همه راههای دنیا و همه راه حلهای مشکلات دنیا
بدست او حل میگردد؛ بسیار متشکر می شوم که ایشان را به من معرفی نمایید
تا من راه حل مشکلات عدیده زندگی ام را از وی بپرسم! :wink:

چهارشنبه 05 شهریور 1382, 21:02 عصر
جدول های پیشنهادی من :
1 - جدول اطلاعات کاربر


ID ... int ... PrimaryKey
UserName ... varchar
password .. varchar
email .. varchar
name ... vharChar
family ... varchar
bornDate .. SmallDateTime
...


2 - جدول نوبت دهی


userName .. Foreign Key
Date ..DateTime


دلیل :
- اگر هر کاربری تنها می تونه، یک UserName داشته باشه، به علت رابطه یک به یک، نباید از دو جدول استفاده کنین ولی اگر در سیستم شما این امکان رو قرار می دین که کاربر بیش از یک UserName داشته باشه، باید از دو جدول استفاده کنین.

- فیلد ID رو Identity قرار بدین تا بطور خودکار زده بشه و یکتا باشه ولی Username رو PrimaryKey انتخاب کنین به علت اینکه UserName یکتاست و کاربر همیشه از این فیلد برای شناسایی استفاده می کنه، و به علت اینکه جستجو روی این فیلد زیاد انجام می شه با PrimaryKey کردن اون، علاوه بر اینکه بقیه جدول ها می تونن به این فیلد Refrence داشته باشن بطور پیش فرض Index اون Clustered قرار می گیره که باعث افزایش سرعت جستجو ها تا حد زیادی می شه.

- سعی کنین بیشتر از Type های varChar و nvarChar استفاده کنین تا در صورتی که String های کوچکتری ذخیره می شود، فضای زیادی اشغال نشه.

- نام یک فرد، یا فارسی است و یا انگلیسی، پس دلیلی نداره تا با انتخاب nvarChar به جای varChar دو برابر فضا مصرف کنین!!

- وقتی نوع فیلد رو تاریخ انتخاب کنین، می تونین از تابع های مختلفی استفاده کنین ولی با انتخاب char این امکانات رو از دست می دهین.

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

جوابم خیلی طولانی شد :wink: امیدوارم مفید باشه