PDA

View Full Version : پرسشی در مورد طراحی دیتابیس



pedram_ns
چهارشنبه 30 فروردین 1391, 00:28 صبح
با سلام
من پرسشی در مورد طراحی یک جدول در دیتابیس دارم که اگر کسی میتونه لطفا کمک کنه.
من دارم یه سایت آگهی می سازم.

یک بخش دایرکتوری آگهی دارم به این صورت که دارای 10 شاخه اصلیه (املاک، آموزش، اتومبیل و ...)
حالا می خوام این شاخه ها هر کدوم زیر شاخه داشته باشه به این صورت که مثلا بخش آموزش دارای زیر شاخه های (آموزش درسی، فنی حرفه ای، زبان و ...) باشه

1.می خوام یک بخش داشته باشم که در ابتدا شاخه های اصلی رو نشون بده و در این حالت همه آگهی ها رو نشون بده.

2.وقتی روی شاخه آموزش کلیک میشه همه آگهی های بخش آموزش رو نشون بده(یعنی هم آگهی های آموزش درسی ، هم آگهی های فنی حرفه ای و هم زبان)

3.و در نهایت وقتی روی آموزش زبان کلیک میشه فقط اگهی های زبان رو نشون بده.

چنین چیزی رو چطور میشه درست کرد و جدولم چطور باید باشه؟

خیلی ممنون

aminghaderi
چهارشنبه 30 فروردین 1391, 05:08 صبح
دوست عزیز طراحی دیتابیس کار وقت گیری هست الخصوص زمانی که بخواهیم اصولی و مهندسی طراحی کنیم.
اما این که شدنی هست یا خیر ، تا حالا که هر دیتابیسی مورد نظر کاربران (طراحان برنامه) بوده قابل پیاده سازی بوده از یه سایت کوچک تا یه فروشگاه نسبتا بزرگ مثل دیجی کالا ؟! (سال جدید ....رفرنس به تولیدات داخلی؟!)
اما اینکه چگونه این کار صورت می گیرد ، خوب مباحثش کمی وقت گیر است و همچنین نیاز به تجربه داره برای همین بهترین کار از نظر من کمک گرفتن از یه با تجربه در این ضمینه است منتها نه تحت وب و تالار برنامه نویس ، بلکه به صورت فیزکی و کسی که نزدیک به خود شما باشد که بتواند توضیحات لازم رو بدهد.
در پروژه ها بزرگ شخص به نام طراح پایگاه داده وجود دارد که مسئولیت طراحی و رابطه های پایگاه رو برعهده دارد .
ایشان کسی هست که به معماری پایگاه کاملا مسلط است و سالها در زمینه پایگاه داده کار کرده است و الان توانایی طراحی پایگاه به بهترین حالت ممکن را دارد.

d_derakhshani
چهارشنبه 30 فروردین 1391, 10:15 صبح
به دلیل نا مفهوم فهیمدن سوال متن رو اصلاح می کنم:
ّروشی طراحی پایگاه داده روشی که در زیر توضیح میدم یک Best Practice هست. نقدش رو پایین تر توضیح میدم
یک جدول به صورت خود ارجاع تعریف کنید. مثال:
ستون های جدول:
CategoryID,CategoryName,ParentID
فیلد ParentID به یک رکورد داخل خود جدول(رکورد والد) اشاره می کنه.

حالا شما جدولی دارید که به صورت درختی میتونه تا بی نهایت سطح، دسته و زیر دسته رو پشتیبانی کنه

من فرض می کنم از DropDown استفاده می کنید. چون توضیحش راحتتره. شما می تونید از HyperLink , ... استفاده کنید.
حال کوئری که برای DropDown اول می زارید می گید که تمام رکورد ها به شرط اینکه ParentID اونها null باشه رو براتون بیاره.
در رویداد انتخاب DropDown میگید DropDown بعدی پر شود با تمام رکوردهایی که ParentID برابر مقدار(Value=CategoryID) انتخابی DropDown جاری.(دقت کنید که این قانون عمومی بود، هر DropDown با همین قانون کنترل بعدیش رو پر می کنه)


هر بار که DropDown انتخاب میشه بررسی کنید:
1. که آیا ParentID برابر null هست یا خیر اگه بود:
آگهی رو join بزنید با Category و به شرط اینکه CategoryID(در جدول دسته ها) برابر مقدار انتخابی یا ParentID برابر مقدار انتخابی
2. اگه null نبود تمام آگهی های که CategoryID شون برابر مقدار انتخابی هست نمایش بدید

fakhravari
چهارشنبه 30 فروردین 1391, 13:06 عصر
با سلام
زیاد سخت نیست.
اول یه catgory درست کن برای (املاک، آموزش، اتومبیل و ...)
بعد forum ها که catid میگیرن
مثل
آموزش cat 1

(آموزش درسی، فنی حرفه ای، زبان و باید cat 1 داخلشون باشه.
که بعد هر کدوم از (آموزش درسی، فنی حرفه ای، زبان و یه frumid دارند
خوب الان باید پست بزنید topik
که فقط کد frumid نیاز است

hamed_hossani
چهارشنبه 30 فروردین 1391, 18:02 عصر
در سایت how2learnASP.net قسمت ارشیو کار با xml - منو های تو در تو