مشاهده نسخه کامل
: dynamic Field in table sql
بسم الله الرحمن الرحیم
با سلام خدمت همه دوستان
می خوام با استفاده از فیلدهای پویا این امکان رو به کاربر بدم که فیلدهای دلخواه خود رو به بانک اضافه کنه.
برای مثال جدول مشتری در برنامه من فیلد آدرس رو نداره ولی شاید چند وقت بعد براشون مهم بشه
لطفا اگه نمونه ای برای پیاده سازی این مورد دارید بگذارید
تا بدونم چه جوری فیلدهای جدید رو تعریف کنم و با جدول پایه ارتباطش بدم، درج و ویرایش و...
پایگاه دادم sql است.
با تشکر:11:
سلام
دقیق نمیدانم منظورتان از فیلد پویا چیست.
یک مفهوم dynamic در دات نت داریم که ارتباطی با مورد سوال ندارد.
یک مفهوم فیلدهای variant هم در دیتابیس sqlserver داریم که باز هم بحثی مستقل است.
بحرحال اگر میخواهید کاربرتان بتواند فیلدهای سفارشی خودش را در جداول شما داشته باشد، چندین راه وجود دارد.
=====
1)
ساده ترین آنها که خودم در چند برنامه ایرانی معروف هم دیده ام، خیلی تفکر ساده و اتفاقاً مفیدی دارد.
گروه طراح می ایند و بجز فیلدهایی که خودشان پیش بینی اش را کرده اند، چند فیلد (مثلاً 3 تا) خالی و آزاد دیگر در جدول پیش بینی و تعریف میکنند.
مثلاً ستون های با نام Item1,2,3
بعد به کاربر امکان میدهند که فقط برچسب و Label آنها را در برنامه تغییر دهد و کاربر هم کلی لذت میبرد که فیلدهای دلخواه خودش را اضافه کرده و مثلاً فیلد جدیدی به موارد ذخیره سازی کالا ها یا پرسنل اضافه کرده!
همانطور که گفتم، تفکر ساده ای است و ایرادی هم ندارد ولی فوق فوقش انجام این کار تا حدود 5 فیلد منطقی است و بیش از آن، منطق نرمال سازی را نقض میکند.
پس برای مواردی که کاربر باید توانایی تعریف تعداد بیشتری فیلد دلخواه باید داشته باشد مناسب نیست.
=====
2)
راه حل بعدی تعریف یک فیلد متنی یا XML در جدول اصلی است که سایر خواص دلخواه کاربر را نگاه دارد.
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
این روش هم در نوع خود جالب است ولی امکان دسترسی و محاسبه در داخل دستورات SQL را سخت تر میکند.
=====
3)
در نهایت راه حل کاملی که میتوان در نظر گرفت ، همان روش عادی طراحی دیتابیس ها نرمال میباشد که موجودیت جدید با رابطه یک به چند ایجاد کنیم.
یعنی در ساده ترین شرایط به حداقل دو جدول جدید نیاز است.
یک جدول که متادیتای خود فیلدهای کاربر را نگاه دارد و یک جدول که دیتای فیلدهای جدید کاربر را نگاه دارد.
دقت کنید که در این روش فیلدهای کاربر واقعاً در سطرهای جداول سازمان دهی میشود.
مثلاً جدول اول میتواند فرمتی مانند این داشته باشد
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
(((
فیلد IDC_Table برای ان است که بتوان دو جدول فوق را همزمان برای چند موجودیت مثل کالا و پرسنل و انبار و اسناد حسابداری و... استفاده کرده
)))
مثالا اگر 5001 و 5002 دو کالا از کالای موجود باشند:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
موفق باشید.
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.