PDA

View Full Version : دیتابیسی که هیچ دیاگرامی ندارد چگونه کار می کند؟



mohamadlvs
پنج شنبه 29 تیر 1391, 20:05 عصر
سلام
من یه پروژه دیدم که در دیتابیس اون هیچ دیاگرامی ایجاد نکرده بود و به طبع هیچ Ralationiی هم در جداول خود نداشت . در حالی که برنامه به درستی و بدون هیچ خطایی اجرا می شد.
چطور چنین چیزی ممکن است ؟ در حالی که در چنین برنامه بزرگی باید این ارتباطات باشد . آیا می شود در قسمت اسکریپت ها این ارتباطات را با کد نویسی برقرار کرد ؟ آیا چنین کاری کرده بوده؟

pashna
پنج شنبه 29 تیر 1391, 20:25 عصر
سلام، حتما ضرورتی نداره که شما ارتباط بین جدول‌هاتون رو با Relation چک کنید، این اتفاقی که میتونه توی لایهٔ Business هم بیفته.

mohamadlvs
پنج شنبه 29 تیر 1391, 21:37 عصر
بیشتر توضیح بدید . منظورتون از لایه Business برنامه نویسی چند لایه ای است؟
اگه اینطوره پس فقط می توان در این مورد از اون استفاده کرد .
اگه ما بخوایم فقط در محیط اس کیو ال کار کنیم و کاری به محیط برنامه نویسی نداشته باشم انوقت چی ؟ آیا می توان در این صورت هم realtion را بین جداول ایجاد نکرد

pashna
پنج شنبه 29 تیر 1391, 22:17 عصر
بله، منظورم برنامه نویسی چند لایه هست، می‌شه توی SQL هم این کارو کرد، ولی‌ صرف نداره :)
Relation چی‌ کار می‌کنه، تصور کنید شما ۲ جدول دارید، Order با OrderLineItem، شما نمیتونید به جدول OrderLineItem رکوردی اضافه کنید مگر اینکه همون Order در جدولِ Order باشه ، وقتی‌ از FK استفاده میکنی‌ اسکیوال این مشکل رو handle می‌کنه، ولی‌ خودتون هم میتونید این کارو بکنید، مثلا وقتی‌ می‌خواهید توی جدول OrderLineItem، Insert کنید اول ۱ Select بزنید ببینید اینو توی جدول Order دارید یا نه
اینطوری handle می‌شه ولی‌ توصیه نمی‌شه :)

pashna
پنج شنبه 29 تیر 1391, 22:20 عصر
البته اینم بگم که بودن یا نبودن دیاگرام ربطی‌ به بودن یا نبودن Relation نداره. من توی دیتابیس خودم هیچ Diagram ندارم ولی‌ Relation دارم.
دیاگرام فقط ارتباط بین جدول هارو Visualize می‌کنه

mohamadlvs
پنج شنبه 29 تیر 1391, 22:25 عصر
البته اینم بگم که بودن یا نبودن دیاگرام ربطی‌ به بودن یا نبودن Relation نداره. من توی دیتابیس خودم هیچ Diagram ندارم ولی‌ Relation دارم.
خب ، حالا شما اون relationهاتون رو کجا می سازید ؟ داخل لایه Business ؟
میشه یه تیک کد که بین دو تا جدول با هم Ralation گذاشتید بذارید

pashna
پنج شنبه 29 تیر 1391, 22:32 عصر
ببینید، من Relation بین جدول هام دارم و با استفاده از FK این کارو انجام دادم، البته خیلی‌ جاها ای‌‌ هم هست که این اتفاق نمیتونه بیفته،مثلا شما نمیتونید بین ۲ جدول در ۲ دیتابیسِ مختلف FK داشته باشید، حالا باید چی‌ کار کنید ؟ چطوری میتونید Integrity دیتابیس رو تضمین کنید ؟
من از طراحی ۳ لایه استفاده کردم، و در لایهٔ Business چک می‌کنم که اگر این Customer در جدول A وجود دارد در جدول B ۱ رکورد براش بزن

pashna
پنج شنبه 29 تیر 1391, 22:33 عصر
http://msdn.microsoft.com/en-us/library/ms175464%28v=sql.105%29.aspx