PDA

View Full Version : نحوه کنترل اطلاعات وارد شده توسط کاربر



حمیدرضاصادقیان
شنبه 02 مرداد 1389, 12:12 عصر
سلام دوستان.
در جداولی که طراحی کردم یک سری اطلاعات رو توسط Fk,pk کنترل کردم و برای یک سری از فیلدها Check Constraint قرار دادم.بعضی از این Check ها به صورت یک عبارت ساده هستند و بعضی هاشون توسط یک تابع کنترل میشوند.
حالا سوال اینه ایا برای کنترل ورود اطلاعات همین روش پیشنهاد میشه یا مثلا در زبان برنامه نویسی که میخواهیم به بانک وصل بشیم همونجا داده ورودی رو کنترل کنیم.از لحاظ Performance کدوم روش ترجیح داده میشه؟
ممنون./

ASKaffash
شنبه 02 مرداد 1389, 14:09 عصر
سلام
به نظر من :
در WinApp ترجیجا هر دو روش
در WebApp در لایه برنامه کاربردی و Ajax Base

محمد سلیم آبادی
شنبه 02 مرداد 1389, 14:51 عصر
سلام،
همانطوری که همه می دانیم پیاده سازی جامعیت داده ها از دو طریق Back End و Front End امکان پذیر است. از طرفی یکی از وظایف DBA پاسخگو بودن در مقابل صحت داده هاست و یک DBA نیز با Back End سر و کار دارد تا خود نرم افزار، پس باید این قیود و Referential Integrity در Database پیاده سازی شود.
با این کار یک بار، یک جا و از یک طریق صحت داده ها را برای همیشه تضمین می کنیم.

حمیدرضاصادقیان
چهارشنبه 06 مرداد 1389, 12:50 عصر
سلام.ممنون. من هم همین روشی که شما گفتین رو دارم انجام میدم.اینجوری هم یکبار کنترل انجام میشه دیگه خیالم راحته اگر کسی هم خواست از توی دیتابیس خرابکاری کنه نمیتونه.
روی Performance که تاثیری نمیذاره؟

محمد سلیم آبادی
چهارشنبه 06 مرداد 1389, 12:57 عصر
روی Performance که تاثیری نمیذاره؟
اگر گزاره هایی که در CHECK استفاده می کنید ساده باشند و از UDF استفاده نشده باشد فکر نمی کنم باعث افت عملکرد شود. یک بار یک UDF نسبتا سنگین ایجاد کردم و در CHECK از آن استفاده کردم و هنگامی که خواستم چند صد رکورد یکجا درج کنم مشکل عملکردی پیدا کرد.

حمیدرضاصادقیان
چهارشنبه 06 مرداد 1389, 14:47 عصر
سلام.نه گزاره های خیلی ساده استفاده کردم.فقط در یکی دومورد از UDF استفاده کردم برای این منظور که در دوتا جدول رابطه چند به چند بود و من میخواستم در این رابطه Fk ایجاد کنم که مجبور شدم یک Function بنویسم و در اون این کنترل رو انجام بدم.

علیرضا مداح
چهارشنبه 06 مرداد 1389, 15:12 عصر
سلام،
این بستگی به معماری Solution شما دارد که این محدودیت ها در سطح Application اعمال شوند یا در سطح Database یا هر دو،
حالتی را در نظر بگیرید که Check Constraint های پیچیده ای دارید و همچنین در بخشی از Application، نیاز دارید تا بر روی تعداد بالای رکورد عملیاتی صورت گیرد که خوب ممکن است در این سناریو، Performance کاهش پیدا کند،
تنها وقتی می توانیم نظر قطعی بدهیم که با یک پروژه ی Practical روبرو باشیم،/