|
|
|
Интересное тестовое задание с разрабткой структуры MySQL
|
|||
|---|---|---|---|
|
#18+
Всем привет! Потенциальный заказчик подкинул интересное тестовое задание на PHP+MySQL,я не прошу его решить за меня,но предлагаю обсудить возможную структуру базы. Task: DB schema of a system which is currently working as follow. Employees:- different levels/types of user in organisation like CEO, administrator, Manager, Supervisiors, workers etc etc Departments HR, IT, Health, Accounts etc etc Each employee is working in multiple roles like user "ABC" is working manager as well as worker. It is also possible that manger of "ERT" dept and "SGY" can assign duty to worker "XYZ" 1 Please design a DB schema which handles this situation in a most efficient way. Please design most suitable and best way to handle all these activites. and also poplule some data in DB and design SQL queries which gives us following results 1.1 Show managers who are also reporting to other managers of other departments. 1.2 Show all employees who have more than 1 managers. 1.3 Show all employees who don't have any managers. Я сделал следующую структуру: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. Особую трудность как я думаю представляет организация сввязи между сотрудниками,была идея использовать древовидную структуру в таблице `employees`,однако ведь работник может управлятся несколькими менеджерами,поэтому поле parent_id я думаю не подходит,тогда решил создать промежуточную таблицу managers,но что то смущает. Какие будут мысли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2005, 00:07:52 |
|
||
|
Интересное тестовое задание с разрабткой структуры MySQL
|
|||
|---|---|---|---|
|
#18+
а размер таблиц какой планируется? может индексов напихать еще надо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2005, 02:00:54 |
|
||
|
Интересное тестовое задание с разрабткой структуры MySQL
|
|||
|---|---|---|---|
|
#18+
panchа размер таблиц какой планируется? может индексов напихать еще надо? да индексы конечно нужны,ну вот что вы думаете для такой структуры каким будет SQL запрос для: 1.1 Show managers who are also reporting to other managers of other departments. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2005, 08:42:24 |
|
||
|
Интересное тестовое задание с разрабткой структуры MySQL
|
|||
|---|---|---|---|
|
#18+
Roman Post Особую трудность как я думаю представляет организация сввязи между сотрудниками,была идея использовать древовидную структуру в таблице `employees`,однако ведь работник может управлятся несколькими менеджерами,поэтому поле parent_id я думаю не подходит,тогда решил создать промежуточную таблицу managers,но что то смущает. Какие будут мысли? А разве у 1-го менеджера 2 начальника? Выполнение заданий и ШДС - разные штуки, как у нас так и у них :) Думаю, что древовидный справочник можно делать, но по другим критериям. Связи между сотрудниками могут быть определены заданиями. Т.е. сам справочник сотрудников делать по отделам древовидно, а в справочнике разнесения ШДС уже разносить должности и иерархию сотрудников. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2005, 12:11:25 |
|
||
|
Интересное тестовое задание с разрабткой структуры MySQL
|
|||
|---|---|---|---|
|
#18+
согласен с [Валентин К] ИМХО таблица managers лишняя. Все таки с точки зрения бизнес логики надо разделять административную иерархию которая практически всегда древовидна и фактическое распределение обязанностей. авторEach employee is working in multiple roles like user "ABC" is working manager as well as worker. Это говорит о том что у всех пользователей могут быть разные роли т.е. они различны по функциональным обязанностям. Т.е. каждый Employee может иметь в ходить в группу менеджеров и одновременно в группу рабочих. авторIt is also possible that manger of "ERT" dept and "SGY" can assign duty to worker "XYZ" Тут фактически описываются взаимоотношения административных сущностей ("Отделы") и функциональных ("workers") по отношению к определенным действиям ("duty"). Какие могут быть эти "дьюти"? могут быть разными. Таки образом имеем таблицы "Отделы" (со ссылкой на руководителя), "Пользователи (со ссылкой на отдел)", "Группы пользователей (типы)", "Действия". Каждая группа имеет права на выполнение определенных действий из тех что им назначенны и т.д... Основной смысл в разделении фйнкциональной и административной иерархий. причем вторая может не быть древовидной. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2005, 11:26:34 |
|
||
|
|

start [/forum/topic.php?fid=47&fpage=643&tid=1853447]: |
0ms |
get settings: |
7ms |
get forum list: |
21ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
63ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 221ms |
| total: | 366ms |

| 0 / 0 |
