PDA

View Full Version : ارتباط بین جداول دیتابیس



damanpak
دوشنبه 06 شهریور 1391, 01:03 صبح
سلام به همه عزیزان؛
من یه جدول دارم که حدودا 20 تا فیلد داره
تمام فیلدهای جدول رو به جدولهای اصلیشون ارتباط دادم
اما دوتا از فیلدهای این جدول که یکی مبدا و دیگری مقصد هست رو میخوام به جدول city ارتباط بدم
اما این اجازه رو که دوتا فیلد از یه جدول رو به جدول اصلیشون که جدول city وصل بشه رو ندارم
به عبارت دیگه میخوام دوتا فیلد از یه جدول به یه فیلد توی جدول اصلیشون ارتباط بدم اما اجازه نمیده
حالا اگه راهی واسه ارتباط این دوتا فیلد به حدول اصلیشون وجود داره ممنون میشم بگین راهش رو واگه هم نداره

شما در این جور موارد چه راهکاری پیشنهاد میدین؟

navid_8x
دوشنبه 06 شهریور 1391, 03:02 صبح
به این کد یه نگاه بنداز:

WITH T AS
(
SELECT TOP 20 name,
row_number() OVER (ORDER BY id) AS RN
FROM Products
ORDER BY id
)
SELECT
MAX(CASE WHEN RN <=10 THEN name END) AS Col1,
MAX(CASE WHEN RN > 10 THEN name END) AS Col2
FROM T
GROUP BY RN % 10

baktash.n81@gmail.com
دوشنبه 06 شهریور 1391, 07:19 صبح
سلام
اگه منظور شما در خصوص Relation بین جداول در هنگام طراحی جدول می باشد SQL این اجازه رو به شما نمی ده ... در نتیجه کنترل های مربوطه رو خودتون باید توی کد انجام بدید - قبلا در این خصوص بحث شده می تونید جستجو بفرمایید

damanpak
دوشنبه 06 شهریور 1391, 10:19 صبح
سلام
اگه منظور شما در خصوص Relation بین جداول در هنگام طراحی جدول می باشد SQL این اجازه رو به شما نمی ده ... در نتیجه کنترل های مربوطه رو خودتون باید توی کد انجام بدید - قبلا در این خصوص بحث شده می تونید جستجو بفرمایید
مممنون از توجه اساتید
میشه لطفا لینک مربوط به این بحث رو اینجا قرار بدین؟

majjjj
دوشنبه 06 شهریور 1391, 12:41 عصر
سلام به همه عزیزان؛
من یه جدول دارم که حدودا 20 تا فیلد داره
تمام فیلدهای جدول رو به جدولهای اصلیشون ارتباط دادم
اما دوتا از فیلدهای این جدول که یکی مبدا و دیگری مقصد هست رو میخوام به جدول city ارتباط بدم
اما این اجازه رو که دوتا فیلد از یه جدول رو به جدول اصلیشون که جدول city وصل بشه رو ندارم
به عبارت دیگه میخوام دوتا فیلد از یه جدول به یه فیلد توی جدول اصلیشون ارتباط بدم اما اجازه نمیده
حالا اگه راهی واسه ارتباط این دوتا فیلد به حدول اصلیشون وجود داره ممنون میشم بگین راهش رو واگه هم نداره

شما در این جور موارد چه راهکاری پیشنهاد میدین؟

با توجه به اینکه فرمودین تعدادی از ارتباطها رو ایجاد کردین پس نحوه ارتباط جداول رو بلدین پس میمونه اینکه شما میخواهید یک ارتباط 2 به 1 بین جدول اصلی و جدول city ایجاد کنید من پیشنهاد میکنم یک alias از جدول city با نام city2ایجاد کنید فیلد مبدا را با city و فیلد مقصد را با city2 مرتبط کنید .

damanpak
سه شنبه 07 شهریور 1391, 00:07 صبح
با توجه به اینکه فرمودین تعدادی از ارتباطها رو ایجاد کردین پس نحوه ارتباط جداول رو بلدین پس میمونه اینکه شما میخواهید یک ارتباط 2 به 1 بین جدول اصلی و جدول city ایجاد کنید من پیشنهاد میکنم یک alias از جدول city با نام city2ایجاد کنید فیلد مبدا را با city و فیلد مقصد را با city2 مرتبط کنید .
مممنون به نظر راه حل شما بهتره و به اون هدفی که میخوام نزدیکتره لطفا اگه میشه یه مثال بزارین
با تشکر از توجهتون

majjjj
سه شنبه 07 شهریور 1391, 09:11 صبح
شما یک view درست کنید جدول اصلی و جدول city را هم add کنید حالا یک بار دیگه جدول city رو add کنید الان مثل این میمونه که شما سه تا جدول دارید که میخواهید با هم لینکشون کنید بقیش مثل همونیه که بال گفتم
کدش هم یک چیزی مثل این میشه
SELECT
FROM dbo.Pos INNER JOIN
dbo.City ON dbo.Pos.CODE = dbo.City.Code INNER JOIN
dbo.City AS City_1 ON dbo.Pos.CODE = City_1.Code