سلام استاد عزیز وقتتون بخیر سال نو بر شما مبارک
من چند سوال داشتم خدمتتون :
1 - به نظر شما میشه ما User Name فرد رو در بانک اطلاعاتی کلید اصلی در نظر بگیریم چون به هر حال منحصر به فرد هست ؟
و اگه میشه از لحاظ فنی مشکلی داره یا خیر ؟
2- اگر شرایطی خاص پیش بیاد که ندونیم تاریخ ورودی میلادی وارد میشه یا شمسی (به عنوان مثال ما تاریخ چاپ کتاب رو می خوایم ولی ممکن کتاب خارجی باشه ممکنه ایرانی باشه) در اون صورت فیلد تاریخ رو NVarChar در نظر بگیریم درست هست یا راهکار دیگه ای داره؟
3-به نظر شما تو جدول زیر User/Pass رو باید در همین جدول ذخیره کنیم یا به یک جدول جدا نیاز داره ؟
CustomerTBL جدول مشتری
-CustomerID INT Primary Key Identity Not Null کد مشتری
-CustomerName NVarChar(30) Not Null نام مشتری
-CustomerLast NVarChar(30) Not Null نام خانوادگی مشتری
-CustomerUser NVarChar(50) Not Null نام کاربری مشتری
-CustomerPass NVarChar(30) Not Null کلمه عبور مشتری
-RegisterDate DateTime Not Null تاریخ عضویت
-CustomerPhone BigInt Not Null شماره تماس مشتری
-CustomerAddress NVarChar(Max) NotNull آدرس مشتری
سلام و عرض ادب.
ممنون. امیدوارم سال خوبی باشه براتون.
برای انتخاب کلید اصلی میشه Username رو در نظر گرفت اما ولی داره:
1- سرعت کوئری زدن روی این جدول افزایش پیدا می کنه زمانیکه کلید از نوع عدد باشه
2- بهتره کلید معنا دار نباشه مثلا identity باشه
3- در مبحث ایندکس ها که در دوره پیشرفته میگیم، متوجه میشید که اگر کلید اصلی فیلد حروف باشه پخش شدن و دسته بندی دیتا نا متعادل میشه و سرعت سرچ میاد پایین.
4- اگه بخواید با این فیلد به جدول دیگه جوین بزنید بازم سرعت پایین تر میاد.
در مورد تاریخ هم بگم که اگر روی این تاریخ عملیات محاسباتی و توابع مربوط به تاریخ رو استفاده نمی کنید اشکالی نداره که از نوع رشته استفاده کنید ولی نه nvarchar . باید از (10)CHAR استفاده کنید. چون چه میلادی و چه شمسی تعداد کاراکترهای تاریخ با علامت بینشان 10 کاراکتر است.
اگر تعداد رکوردهای جدولتون خیلی زیاد نیست یعنی کمتر از چندصدهزارتا اشکالی نداره که نام کاربری و رمز در همین جدول باشه. ولی 2 تا نکته:
1- آدرس و تلفن مشتری بیش از یک عدد نمی تواند باشد و در صورتی که مشتری بیش از 2 تلفن بدهد به مشکل می خورید.
2- حتما روی فیلد نام کاربری یک نان کلاستر ایندکس بزنید.
موفق باشید.
ممنونم از راهنماییتون