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

نام تاپیک: مشکل در بر قراری ارتباط بین جداول در یک مثال ساده

  1. #1

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

    با سلام به دوستان عزیز

    من تازه شروع به کار با sql server 2005 کردم. با مبانی و مفهومات این بانک آشنایی مختصری پیدا کردم ولی مشکل اینجا است که هر بار که می خوام بین جداول بانک ارتباط برقرار کنم خطا می ده و ازتباط ساخته نمیشه و خطا های زیر رو میده.

    من قصد دارم یه پروژه آزمایشی دفترچه تلفن درست کنم که شامل دو جدوله
    اولی مشخصات فرد( آی دی ، نام کوچک ، نام خانوادگی،شغل طرف ، توضیحات اضافی)
    دومی شامل ( آی دی ، شماره ثابت ، شماره همراه، ایمیل)
    دیاگرامش رو تو ضمیمه ها می زارم
    این ارور را می گیرم

    'ContactMainProperty' table saved successfully
    'ContactDetail' table
    - Unable to create index 'IIX_ContactDetail'.
    CREATE UNIQUE INDEX terminated because a duplicate key was found for object name 'dbo.ContactDetail' and index name 'IIX_ContactDetail'. The duplicate key value is (0).
    Could not create constraint. See previous errors.
    The statement has been terminated.

    گاه گداری هم به forign key گیر میده یا به ایندکس و کلید ها گیر میده

    ممنون میشم که بگید اشکالم کجاست و به چه صورت باید این ارتباط رو برقرار کنم.
    باز هم عذر می خوام از اینکه سوالم اولیه و پیش پا افتاده است خیلی جستجو کردم ولی فقط گیج تر شدم تو رو خدا کمکم کنید خیلی خیلی قاطی کردم! البته تا حالا برای این کار از محیط گرافیکی استفاده کنم ، T-Sql مشکلم رو حل میکنه
    عکس های ضمیمه عکس های ضمیمه

  2. #2
    کاربر دائمی آواتار ASKaffash
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    تهران
    پست
    2,427

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

    با سلام
    - رابطه PK و FK را یک به یک تعریف کرده اید باید Id و C_Id یک به چند باشند
    -فیلد id را با خودش ارتباط PK و FK داده اید چرا؟

  3. #3

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

    سلام و با تشکر از لطف تون، حتما روی پیشنهادات شما، کار می کنم
    آقای کفاش، من تو این زمینه واقعا تازه کارم واقعا گیج شدم. رابطه pk , fk رو میشه توضیح بدید چیه؟

    اگه لطف کنید یه کم ابتدایی تر توضیح بدید و یا یه مثال ساده در همین زمینه برام بزنید که مراحل رو به تفکیک نشون بده، ممنون میشم

  4. #4

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

    دوست عزیزم از پیغام اینطور پیداست که در جدول ContactDetail روی فیلدی که دارین Unique Key ایجاد میکنین، در حال حاضر مقدار تکراری داره

  5. #5

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

    ممنون از راهنماییتون آقای ثباتی! مشکل ام حل شد ، اگه میشه به عکس ضمیمه یه نگاه بندازید

    به نظرتون چه کار هایی رو باید برای بالا بردن عملکرد سرعت در این بانک آزمایشی انجام بدم
    یک unique key در هر جدول بیشتر نداشتم ولی همونطوری که حدس زدید روی ایندکس هام ارور می داد

    این یک به یک و یک به چند که دوستمون عنوان کردند به چه صورتی اعمال میشه؟
    اگه نکته ای هست لطفا عنوان کنید. اصلا خودتون اگه بخواهید این بانک رو بسازید ،چه جوری رابطه میدید و ایندکس گذاری می کنید؟ نمومه t-sql هم اگه در این رابطه دارید لطفا بزارید
    عکس های ضمیمه عکس های ضمیمه

  6. #6

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

    - بالا بردن سرعت بانک، بعد از اینکه تمام Queryها مشخص شد قابل بحثه. تمام ایندکس گذاری ها هم همینطور
    - وقتی فقط یک سر Relation کلید باشه، یعنی رابطه میتونه یک-به-چند باشه. اما اگر هر دو سرش کلید باشه، طبیعتا یک-به-یک خواهد بود

  7. #7

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

    آقای ثباتی اجازه هست تو کامل کردن این زمینه پیش برم و مشکل هام رو تو همین تاپیک از شما بپرسم؟

  8. #8
    کاربر دائمی آواتار ASKaffash
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    تهران
    پست
    2,427

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

    سلام دوست من
    PK به فیلد منحصر به فرد که کلید در جدول شماست گفته میشود مثلا در یک سیستم پرسنلی شماره کارمندی میتواند بعنوان کلید انتخاب شود.
    حالا اگر شما درهمین سیستم پرسنلی بخواهید اطلاعات افراد تحت تکفل فرد را نگهداری کنید یک جدول دوم ایجاد میکنید ویک فیلد شماره کارمندی هم جنس فیلد شماره کارمندی در جدول پرسنل را تعریف میکنید این فیلد در این جدول کلید خارجی یا FK نامیده میشود. امیدوارم خوب توضیح داده باشم.

  9. #9

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

    نقل قول نوشته شده توسط DotNet_King مشاهده تاپیک
    آقای ثباتی اجازه هست تو کامل کردن این زمینه پیش برم و مشکل هام رو تو همین تاپیک از شما بپرسم؟
    اگر مربوط به همین مسئله باشه مانعی نداره، اما سوالهای متفاوت رو در تاپیک جدا پست کنید

  10. #10

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

    نقل قول نوشته شده توسط ASKaffash مشاهده تاپیک
    سلام دوست من
    PK به فیلد منحصر به فرد که کلید در جدول شماست گفته میشود مثلا در یک سیستم پرسنلی شماره کارمندی میتواند بعنوان کلید انتخاب شود.
    حالا اگر شما درهمین سیستم پرسنلی بخواهید اطلاعات افراد تحت تکفل فرد را نگهداری کنید یک جدول دوم ایجاد میکنید ویک فیلد شماره کارمندی هم جنس فیلد شماره کارمندی در جدول پرسنل را تعریف میکنید این فیلد در این جدول کلید خارجی یا FK نامیده میشود. امیدوارم خوب توضیح داده باشم.

    پس با این حساب id تو بانک من pk است و کلیه آی دی هایی که تو جداول دیگه تعریف می کنم fk است؟ میشه بگید به چه صورتی باید این pk , fk رو با دستورات t-sql به جداوالم نسبت بدم؟

  11. #11
    کاربر دائمی آواتار ASKaffash
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    تهران
    پست
    2,427

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

    با سلام
    درست است . درضمن شما نسبت داده اید کافی است استفاده کنید مثلا :

    Select M.*,
    Cnt=(Select Count(*) From ContactDetail Where id=M.id)
    From ContactMainProperty M
    Where ....


    در ضمن بهتراست id را مثلا به Cid تبدیل کنیدچون id کلمه کلیدی است

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

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