نمایش نتایج 1 تا 13 از 13

نام تاپیک: نحوه ایجاد جدول و Unique کردن فیلدها

  1. #1

    نحوه ایجاد جدول و Unique کردن فیلدها

    سلام
    دوستان میشه در مورد ایجاد یه table جدید و مخصوصا unique کردن پارامتر هاش
    توضیح بدید؟؟

    CREATE TABLE Persons
    (
    P_Id int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Address varchar(255),
    City varchar(255),
    UNIQUE (P_Id)
    )



    CREATE TABLE Persons
    (
    P_Id int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Address varchar(255),
    City varchar(255),
    CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)
    )

    پیشاپیش ممنون

  2. #2
    کاربر دائمی آواتار sohil_ww
    تاریخ عضویت
    آذر 1391
    محل زندگی
    هر جا شادی باشه
    پست
    891

    نقل قول: unique

    CREATE TABLE Persons
    (


    این دستور می گه من 1 جد.ل می خوام ایجاد کنم به نام persons


    P_Id int NOT NULL,


    و این خط کد میاد 1 ستون به نام p_ID نوع int و اینکه این فیلد نمی تواند خالی باشد و باید مقدار بگیره

    LastName varchar(255) NOT NULL,


    اینم به همون صورت بالا ولی با نوع Varchar


    FirstName varchar(255),
    Address varchar(255),
    City varchar(255),


    این کد ها هم به همون صورت ولی با این تفاوت که می تونن این فیلد ها خالی باشن

    و حالا دستور
    UNIQUE (P_Id)


    این دستور میاد فیلد (p_ID) از نوع UNIQUE تعریف می کنه و حالا این کد چی هست

    UNIQUE به معنی منحصر به فرد است و حالا توضیحش

    دقیقا مثل pirimery key یعنی 1 محدویت برای فیلد ایحاد می کنن یعنی این که این فیلد نمی تونن مقدار های یکسان داشته باشن ما تو جدول فقط 1 perimery key می تونیم داشته باشیم ولی تا دلت می خواد unique تعریف کن حالشو ببر

  3. #3

    نقل قول: unique

    بسم الله الرحمن الرحیم
    با سلام
    ما تو جدول فقط 1 perimery key می تونیم داشته باشیم ولی تا دلت می خواد unique تعریف کن حالشو ببر
    معمولا چه موقع هایی استفاده میشه.
    با سپاس

  4. #4

    نقل قول: unique

    معمولا چه موقع هایی استفاده میشه.
    یک نمونه بسیار ساده شماره دانشجویی هست. زمانی که این خصیصه در جدول به عنوان کلید اولیه نیست بهتر است یک قید UNIQUE روی آن ایجاد کنیم تا تکراری نبودنش تضمین بشه.

  5. #5
    کاربر دائمی آواتار f.beigirad
    تاریخ عضویت
    مهر 1391
    محل زندگی
    شهریار تهران
    پست
    329

    نقل قول: unique

    نقل قول نوشته شده توسط msalim مشاهده تاپیک
    یک نمونه بسیار ساده شماره دانشجویی هست. زمانی که این خصیصه در جدول به عنوان کلید اولیه نیست بهتر است یک قید UNIQUE روی آن ایجاد کنیم تا تکراری نبودنش تضمین بشه.
    با سلام

    اگر ما شماره دانشجویی رو هم Unique کنیم ، پس مسلمه که دیگه نباید قبل از درج رکورد ، خودمون کوئری بزنیم و شماره دانشجویی رو چک کنیم که تکراری نباشه.درسته؟

    پس باید خطا های دیتابیس رو هندل کنیم دیگه!!

    من همین کار رو انجام دادم.از نظر سرعت ، مدیریت خطا ها یا هندل کردن خطا های دیتابیس 5 برابر مدت زمان چک کردن و درج رکورد طول کشید!!!!

    برا خودمم این نتیجه جالب بود.

    بعدش این سوال برام پیش اومد که چرا مایکروسافت فیلد Unique رو تو SQL Server قرار داده؟


    .......................................
    لازم دونستم بگم جدولی که من این تست رو روش انجام دادم حدود 25 هزار رکورد داشت .و تمامی دستورات برای درج و چک کردن دستورات T-SQL بودن.

  6. #6
    کاربر دائمی آواتار sohil_ww
    تاریخ عضویت
    آذر 1391
    محل زندگی
    هر جا شادی باشه
    پست
    891

    نقل قول: unique

    نقل قول نوشته شده توسط f.beigirad مشاهده تاپیک
    با سلام

    اگر ما شماره دانشجویی رو هم Unique کنیم ، پس مسلمه که دیگه نباید قبل از درج رکورد ، خودمون کوئری بزنیم و شماره دانشجویی رو چک کنیم که تکراری نباشه.درسته؟

    پس باید خطا های دیتابیس رو هندل کنیم دیگه!!

    من همین کار رو انجام دادم.از نظر سرعت ، مدیریت خطا ها یا هندل کردن خطا های دیتابیس 5 برابر مدت زمان چک کردن و درج رکورد طول کشید!!!!

    برا خودمم این نتیجه جالب بود.

    بعدش این سوال برام پیش اومد که چرا مایکروسافت فیلد Unique رو تو SQL Server قرار داده؟


    .......................................
    لازم دونستم بگم جدولی که من این تست رو روش انجام دادم حدود 25 هزار رکورد داشت .و تمامی دستورات برای درج و چک کردن دستورات T-SQL بودن.
    یک نمونه بسیار ساده شماره دانشجویی هست. زمانی که این خصیصه در جدول به عنوان کلید اولیه نیست بهتر است یک قید UNIQUE روی آن ایجاد کنیم تا تکراری نبودنش تضمین بشه.
    دوست عزیز همون طوری که آقا/خانم msalim گفتن و مثالی که خودتون زدید اگه بخوایم چک کنیم که داده موجود هست یا نه باید کل داده های موجود در فیلد مورد نظر سرچ بزنیم و ببینیم مقدار ما موجود هست یا نه ،ولی اگه بخوایم که خودمون چک کنیم با در نظر گرفتن زمانی که صرف نوشتن کویری برای سرچ می شه(منظورم همون زمان کم برای تایپه) به نظر شما تایپ کردن دستورات آسون تره با ا فیلد در موقع طراحی از نوع unique قرار دادن

    (اگه بد توضیح دادم دیگه شرمنده تازه افطار کردیم مغز هنوز تو اون حالت اماده باش خودش نیست.)

  7. #7
    کاربر دائمی آواتار f.beigirad
    تاریخ عضویت
    مهر 1391
    محل زندگی
    شهریار تهران
    پست
    329

    نقل قول: unique

    طاعات قبول.

    برای من مهم اصولی بودن مهمه.

    نه تایپ کردن 10 - 20 خط کد.
    هنوزم معتقدم کوئری زدن برای چک کردن یک کار اضافس.
    چون این امکان رو خود SQL Server تو خودش قرار داده.ولی در عجبم چرا نتیجه ای که گرفتم خلافه این قضییس.

    جالب تر اینه که تو هندل کردن پرفرمنس هم به شدت بالا میبره.

    دارم کم کم هنگ میکنم

  8. #8
    کاربر دائمی آواتار sohil_ww
    تاریخ عضویت
    آذر 1391
    محل زندگی
    هر جا شادی باشه
    پست
    891

    نقل قول: unique

    نقل قول نوشته شده توسط f.beigirad مشاهده تاپیک
    طاعات قبول.

    برای من مهم اصولی بودن مهمه.

    نه تایپ کردن 10 - 20 خط کد.
    هنوزم معتقدم کوئری زدن برای چک کردن یک کار اضافس.
    چون این امکان رو خود SQL Server تو خودش قرار داده.ولی در عجبم چرا نتیجه ای که گرفتم خلافه این قضییس.

    جالب تر اینه که تو هندل کردن پرفرمنس هم به شدت بالا میبره.

    دارم کم کم هنگ میکنم
    من حقیقتا تا حالا رو این موضوع استوار بودم ولی چیزی که شما می گید(البته خودم چک نکردم)منم به شک انداخت تو این قضیه ممنون میشم اساتید 1 جواب منطقی برای این سئوال بدن

  9. #9

    نقل قول: unique

    بسم الله الرحمن الرحیمم
    با سلام
    دوستان اگر بخواهیم خطاهای دیتابیس در سطح DL چک کنیم؛ چه کار باید کنیم و چه جوری بایستی انجام داد؟
    با سپاس

  10. #10

    نقل قول: unique

    بسم الله الرحمن الرحیم
    نقل قول نوشته شده توسط msalim مشاهده تاپیک
    یک نمونه بسیار ساده شماره دانشجویی هست. زمانی که این خصیصه در جدول به عنوان کلید اولیه نیست بهتر است یک قید UNIQUE روی آن ایجاد کنیم تا تکراری نبودنش تضمین بشه.
    با سلام
    دلیل خاصی داشت که شماره دانشجویی رو کلید اصلی نگرفتید یا فقط در حد روشن شدن مسئله بود. چون به عقیده بنده در جدول دانشجو شماره دانشجویی کلید است.
    با سپاس

  11. #11
    کاربر دائمی آواتار sohil_ww
    تاریخ عضویت
    آذر 1391
    محل زندگی
    هر جا شادی باشه
    پست
    891

    نقل قول: unique

    نقل قول نوشته شده توسط مهدی هادیان2 مشاهده تاپیک
    بسم الله الرحمن الرحیم

    با سلام
    دلیل خاصی داشت که شماره دانشجویی رو کلید اصلی نگرفتید یا فقط در حد روشن شدن مسئله بود. چون به عقیده بنده در جدول دانشجو شماره دانشجویی کلید است.
    با سپاس
    عزیز اون فقط 1 مثال بود، ولی به نظر من کلید اصلی تو همه ی دیتابیس های ثبت اطلاعات فردی بهتر کلید اصلی کد ملی باشه و شماره دانشجویی یا شماره پرسنلی و ... به صورت unique تعریف بشن

  12. #12

    نقل قول: unique

    نقل قول نوشته شده توسط مهدی هادیان2 مشاهده تاپیک
    بسم الله الرحمن الرحیم

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

    اجازه بدین یک مثال دیگر بیاورم. ما یکسری اشیاء داریم و یکسری افراد. جدول داریم که مالکیت افراد را نسبت به اشیاء مشخص می کند. مثلا علی دارای کامپیوتر است. خب در اینجا ما تنها نیاز به یک بار تعیین کردن این مالکیت داریم و ایجاد یک سطر دیگر با همین مقادیر کار اشتباهی است. در نتیجه می توانیم ترکیب این دو ستون را کلید اولیه در نظر بگیریم. اما گزینه ی دیگری نیز برای انتخاب PK وجود دارد یعنی ایجاد یک کلید جانشین(surrogate) یا مصنوعی به این معنا که یک ستون دیگر به این جدول اضافه نموده و آن را PK تعیین میکنیم (که استفاده از ویژگی IDENTITY بسیار متعارف است). و ترکیب آن دو ستون را به عنوان کلید کاندید ( Candidate Key) بپذیریم. و بایستی یک قید ترکیبی یکتا (Composite Unique Constraint) ایجاد کنیم تا یکتایی آن کلید تضمین شود. اگر اینکار را نکنیم درست است که هیچگاه دو سطر با مقادیر کاملا یکسان در جدول نخواهیم داشت (به واسطه ی PK) اما ممکن است یک مالکیت در جدول چند بار اعلام شده باشد. مثلا دو سطر غیر تکراری زیر معنایی ندارند چرا که مالکیت یک فرد نسبت به یک شی ء را دو بار بیان کرده است که لزوم و ضروریتی نداشت:

    کلید اولیه - نام فرد - نام شیء
    1 علی کامپیوتر
    2 علی کامپیوتر

    فکر کنم با این مثال توانسته باشم حق مطلب رو ادا کنم

  13. #13

    نقل قول: unique

    با پیگیری این موضوع به نتیجه جدیدی نرسیدید؟ هنوز از کوئری استفاده می‌کنید؟

تاپیک های مشابه

  1. نحوه ایجاد جدول در sql با کدنویسی در C#‎
    نوشته شده توسط hana2064 در بخش دسترسی به داده ها (ADO.Net و LINQ و ...)
    پاسخ: 16
    آخرین پست: جمعه 08 آبان 1394, 13:22 عصر
  2. نحوه ایجاد جدول جدید در دیتابیس با استفاده از کد
    نوشته شده توسط یاشار رضایی نسب در بخش VB.NET
    پاسخ: 2
    آخرین پست: پنج شنبه 08 اردیبهشت 1390, 10:24 صبح
  3. سوال: نحوه ایجاد جدول
    نوشته شده توسط water_lily_2012 در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 1
    آخرین پست: جمعه 26 فروردین 1390, 19:08 عصر
  4. نحوه ایجاد فایل و کار کردن با آنها
    نوشته شده توسط roya_hh در بخش VB.NET
    پاسخ: 0
    آخرین پست: سه شنبه 18 فروردین 1388, 08:34 صبح
  5. نحوه ایجاد جدول و فیلدهای دلخواه در سرور
    نوشته شده توسط sh در بخش ASP.NET Web Forms
    پاسخ: 5
    آخرین پست: سه شنبه 04 فروردین 1383, 11:03 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •