نمایش نتایج 1 تا 5 از 5

نام تاپیک: طراحی چارت سازمانی

  1. #1

    طراحی چارت سازمانی

    سلام دوستان
    بنده یه نرم افزار دارم که باید چارت سازمانی داشته باشه حالا من دوتا جدول دارم یکی برای سازمان ها و واحدهاشون و اونیکی برای پرونده پرسنل که شامل کلید خارجی از جدول سازمان ها هست، به این شکل:
    Organization: Id, Name, ParentId
    Personnel: Id, Name, OrganId, Title, SupervisorId

    ستون SupervisorId آیدی مافوق پرسنل هست
    حالا با این پیاده سازی چنتا مشکل میاد سر راهم:
    ۱. اینکه هر پرسنل فقط یه جایگاه شغلی میتونه داشته باشه (ولی ممکنه توی بعضی سازمان ها یا هلدینگ ها یک شخص چندین جایگاه شغلی داشته باشه - اون پراپرتی Title برای مشخص کردن سمت یا جایگاه شغلی فرده که در این پیاده سازی جنسش استرینگه.)

    ۲. من میخوام طرف بتونه به این شکل چارت سازمانیشو طراحی کنه:
    2.jpg
    اما مشکلی که هست به خاطر نحوه پیاده سازی جدول پرسنل و ارگان ها، همچین طراحی ای ممکن نیست، فک کنم خودتون هم حدس بزنید مشکل از چیه، مشکل اینه که اصلا سازمان ها نمیتونن زیر مجموعه یک پرسنل باشن و همچنین یک شخص هم نمیتونه به طور غیرمستقیم زیرنظر شخصی خارج از سازمان یا واحد خودش باشه، یعنی اگه برای یک شخص آیدی مافوق یا همون ستون SupervisorId رو ست کنیم، اون شخص مستقیما زیرمجموعه مافوق خواهد بود و دیگه نمیشه توی یک واحد جداگانه بذاریش، نتیجه این محدودیت ها میشه طراحی زیر که در حال حاضر باهاش مشکل دارم:
    1.jpg
    حالا چیزی که به ذهنم رسیده اینه که طراحی رو یکم تغییر بدم به این شکل که توی جدول ارگان ها، یک پراپرتی دیگه اضافه کنم که مشخص کننده نوع رکورد باشه، حالا نوع رکورد دو مقدار خواهد داشت، یک: جنس سازمان، دو: جنس جایگاه شغلی
    و همچنین توی جدول پرسنل ستون SupervisorId و ستون Title رو حذف کنم، طراحی جدید به این شکل درمیاد:
    Organization: Id, Name, ParentId, RecordType
    Personnel: Id, Name, OrganId
    توی این طراحی سازمان ها و واحدها و جایگاه های شغلی توی جدول Organization ثبت میشن، و برای پرسنل آیدی رکوردی از جدول Organization ست میشه که از نوع جایگاه شغلی باشه
    البته این طراحی رو فعلا پیاده سازی نکردم و نمیدونم توی عمل جوابگو خواهد بود یا نه، ولی بصورت تئوری این طراحی، مشکل دوم رو که بالا ذکر کردم رفع میکنه
    برای مشکل اول هم فک کنم باید یه جدول واسط بسازم که هم آیدی Organization رو داشته باشه هم آیدی جدول Personnel رو که بشه برای یک شخص چندین جایگاه تعیین کرد، و اون ستون OrganId توی جدول پرسنل رو هم باید حذف کنم
    اینا تحلیلایی هست که خودم انجام دادم اما خواستم با دوستان هم یه مشورتی داشته باشم ببینم آیا همین طراحی جوابگو خواهد بود یا راه بهتری هست برای اینکار؟
    آخرین ویرایش به وسیله mr.sirwan : دوشنبه 07 مهر 1399 در 16:18 عصر

  2. #2

    نقل قول: طراحی چارت سازمانی

    یک طراحی هم من میگم ببینید چطوره:
    یک جدول برای شخص
    یک جدول برای سازمان که خود ارجاع هست
    یک جدول برای تعریف همه جایگاه های شغلی و سازمانی مثل مدیر، معاون، ... .
    یک جدول برای ارتباط سازمان با جایگاه شغلی هر سازمان
    یک جدول برای ارتباط شخص با سازمان و جایگاه شغلی

  3. #3

    نقل قول: طراحی چارت سازمانی

    تشکر از پاسختون جناب افراد، منظور شما همچین طراحی ای هستش؟
    Person: Id, Name

    Organization: Id, Name, ParentId

    Title: Id, Name

    OrganTitle: Id, OrganId, TitleId

    PersonOrganTitle: Id, PersonId, OrganTitleId

    آخرین ویرایش به وسیله mr.sirwan : چهارشنبه 16 مهر 1399 در 15:22 عصر

  4. #4

    نقل قول: طراحی چارت سازمانی

    بله. ببینید به کارت میاد. کوئری رو بنویس ببین جواب میده

  5. #5

    نقل قول: طراحی چارت سازمانی

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

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •