PDA

View Full Version : طراحی بانک اطلاعاتی برای نگهداری اطلاعات اقلام مختلف



hiran
یک شنبه 12 تیر 1390, 13:08 عصر
سلام
می‌خواهیم یک بانک اطلاعاتی طراحی کنیم تا اطلاعات اقلام مختلفی را در آن ذخیره کنیم. طراحی باید به‌گونه‌ای باشد که نه در تعریف اقلام محدودیتی داشتم باشیم و نه در تعریف فیلد برای هر قلم از داده‌ها.

برای این‌که منظورم را بهتر توضیح بدهم یک مثال می‌زنم. در کتابخانه یک دانشگاه کتاب، مقاله، پایان‌نامه، فیلم و ... وجود دارد. به هر کدام از این موارد یک قلم اطلاعات (یک نوع سند) می‌گوییم. هر کدام از این اقلام فیلد‌های خاص خودشان را دارند و تنها فیلد مشترک‌شان عنوان آنها می‌باشد. دو تا شرط زیر باید در طراحی لحاظ شود:

1.با توجه به این‌که احتمال دارد در آینده اقلام اطلاعاتی جدید به کتابخانه اضافه شود، کاربر بتواند اقلام جدید اطلاعات را تعریف کند. مثلاً میکروفیلم
2.کاربر بتواند به فیلد‌های اقلام اطلاعاتی موجود در بانک، فیلد جدیدی اضافه کند. مثلاً اگر برای کتاب تا به حال 5 فیلد تعریف شده است بتواند یک فیلد جدید به آن اضافه کند.

یکی از روش‌ها می‌تواند این باشد که برای هر قلم اطلاعاتی یک جدول طراحی کرد. مثلاٌ برای کتاب، جدول Book را با فیلدهای مورد نظر ایجاد می‌کنیم و در صورت نیاز می‌توان به آن فیلد جدید نیز اضافه کرد و این کار را برای هر قلم اطلاعاتی انجام دهیم. با توجه به این‌که همه این کارها را باید از طریق یک وب‌اپلیکیشن انجام دهیم (ساختن جدول، اضافه کردن فیلد به جدول) به نظرم کار سختی است. اصولاً چون ساختار بانک اطلاعاتی متغیر است ، پیاده‌سازی این طراحی مثلاً توسط یک وب اپلیکیشن سخت است. مثلا با اضافه کردن یک فیلد به یک جدول، فرم ورود اطلاعات تغییر می‌کند. یا مثلاً با اضافه کردن یک جدول به بانک باید یک فرم ورود اطلاعات نیز برای آن درست کرد. (چون فیلدهای هر قلم داده با هم متفاوت است و تنها فیلد مشترکشان، عنوان آنها می‌باشد.)

حال ‌سوال اینجاست که روش دیگر طراحی چیست؟ چگونه می‌توان این بانک را طراحی کرد بدون این‌که برای ایجاد اقلام اطلاعاتی جدید یا اضافه کردن فیلدهای جدید به جداول مجبور باشیم به ساختار بانک اضافه کنیم. (از دستورات create table یا alter fields استفاده نکنیم)؟
امیدوارم که سوالم را درست طرح کرده باشم.
باتشکر

Galawij
یک شنبه 12 تیر 1390, 13:25 عصر
سلام

خیلی راحت از طریق یک ارتباط چند به چند قابل پیاده سازی است. به این صورت:

شما یک جدول برای انواع اقلام اطلاعاتی تعریف می کنید که می تونه شامل کتاب، مقاله، مجله، پایان نامه و ... باشد که به مرور زمان هم می تونید به این لیست اضافه کنید.
یک جدول هم برای انواع خصوصیات تعریف می کنید که می تونه شامل عنوان، سال انتشار، نویسنده و ... باشد.
یک جدول هم برای خصوصیات اقلام اطلاعاتی تعریف می کنید که شامل این فیلدها می باشد: کد انواع اقلام اطلاعاتی، کد انواع خصوصیات و مقدار خصوصیت است.
به این ترتیب هیچ محدودیتی از لحاظ زمانی و ساختاری در ارتباط با افزودن اقلام اطلاعاتی و خصوصیات اقلام اطلاعاتی ندارید.
ارتباط های چند به چند در بانک اطلاعاتی خیلی از مسائل روزمره زندگی را به صورت جدولی قابل پیاده سازی می کند.
موفق باشید%

hiran
یک شنبه 12 تیر 1390, 16:54 عصر
سلام
ممنون بابت جواب دادن. منظورتون شکل زیر است؟
فایل اکسس را هم الصاق کردم . لطف می‌کنید اگر نظرتان را اعلام کنید. متشکرم

Galawij
دوشنبه 13 تیر 1390, 09:39 صبح
سلام
من بانک رو با Access ایجاد کردم. ببخشید عنوان فیلدهای شما را متوجه نشدم.
71854