Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Рассадка по местам в самолете
|
|||
|---|---|---|---|
|
#18+
Код: sql 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. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. Где [order] - это номер заказа, как правило в номере заказа все люди - это одна семья или люди купившие вместе билеты, и они хотят сидеть рядом [category] - это признак взрослый =1 или ребенок =0. Т.е. если признак = ребенок, то ему нужен сопровождающий взрослый, который будет как правило сидеть в одной заявке [order] , и соответственно сидеть рядом [id] - это как раз признак, показывающий связь ребенка с одним из взрослых, т.к. в одной заявке [order] могут находиться две семьи [People] - это id человека, не повторяющаяся величина. Есть ограничение по рассадке: в семье может находиться не более 6 человек, если больше 6, то эту семью надо делить на части. Нужно отранжировать рассадку людей по местам, согласно правилам. т.е. получить в итоге таблицу вида: order id categorypeopleseatsblock1 1 1 561 1 2 1 571 1 3 1 4512 4 1 4122 4 0 4222 4 0 4322 4 0 4422 4 0 5422 5 1 6032 5 0 6132 5 0 6232 6 1 6533 7 1 6843 7 0 6943 7 0 7043 7 0 7143 7 0 7243 7 0 7343 7 0 7454 8 1 7554 9 1 7655 10 1 8066 11 1 817 Поле SeatsBlock - это как раз деление по 6 человек на рассадку , у кого одинаковый seatsblock, система им присвоит идущие подряд номера мест. Смысл заключается в том, я мог бы их отправлять по номерам [Order], но тут есть ограничения, в одном [order] могут находиться не более 6 человек и я должен этот [order] поделить так, чтобы дети не разделились со взрослыми, сложность заключается в том, предусмотреть случай, если мама летит с 6 детьми (ну или не мама, группа детей куда-то летит с одним взрослым), то получается 6 детей+ 1 взрослый, система выдаст ошибку, что в одном блоке мест не может находиться больше 6 человек. В этом случае, мы одного ребенка цепляем другому свободному взрослому (или не свободному, у кого детей меньше 6) из этой заявки [order], если в этой заявке уже нет взрослых, то цепляем этого ребенка к свободному взрослому из след.заявки. Надеюсь норм расписал, в общих чертах получается, загружаем по [order], но если в [order] больше 6 человек, то делим заявку таким образом, чтобы дети не разделились от взрослых. и второе в люди находящиеся в одном [order] должны сидеть рядом. помогите с таким ранжированием. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2018, 17:55 |
|
||
|
Рассадка по местам в самолете
|
|||
|---|---|---|---|
|
#18+
minya13_85, Алгоритмы рюкзака? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2018, 20:45 |
|
||
|
Рассадка по местам в самолете
|
|||
|---|---|---|---|
|
#18+
TaPaKminya13_85, Алгоритмы рюкзака? Ответ неверный. Садись. Неуд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2018, 05:32 |
|
||
|
Рассадка по местам в самолете
|
|||
|---|---|---|---|
|
#18+
minya13_85, Есть ощущение, что проблема именно в граничных случаях типа minya13_85если мама летит с 6 детьми (ну или не мама, группа детей куда-то летит с одним взрослым), то получается 6 детей+ 1 взрослый, система выдаст ошибку, что в одном блоке мест не может находиться больше 6 человек. В этом случае, мы одного ребенка цепляем другому свободному взрослому (или не свободному, у кого детей меньше 6) из этой заявки [order], если в этой заявке уже нет взрослых, то цепляем этого ребенка к свободному взрослому из след.заявки. И это уже работа не с наборами данных, а с отдельными записями, что в sqlе не рекомендуется делать. Перекидывание отдельных записей по условиям это проще в приложении сделать на любом языке который с массивами работать умеет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2018, 07:37 |
|
||
|
Рассадка по местам в самолете
|
|||
|---|---|---|---|
|
#18+
Это не задача SQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2018, 07:59 |
|
||
|
Рассадка по местам в самолете
|
|||
|---|---|---|---|
|
#18+
982183Это не задача SQL. Я все таки думаю можно ее решить на SQL. Типа такого, только надо немного доработать запрос. Тут главное условие как поделить сверхблок по 6 Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2018, 10:43 |
|
||
|
Рассадка по местам в самолете
|
|||
|---|---|---|---|
|
#18+
А потом понадобится отделить мужчин от женщин. А затем мусульман от христиан. И снова будем приделывать ДВС к велосипеду. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2018, 03:59 |
|
||
|
Рассадка по местам в самолете
|
|||
|---|---|---|---|
|
#18+
minya13_85982183Это не задача SQL. Я все таки думаю можно ее решить на SQL.Можно и гвозди микроскопом забивать, но зачем?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2018, 04:00 |
|
||
|
Рассадка по местам в самолете
|
|||
|---|---|---|---|
|
#18+
Mindminya13_85пропущено... Я все таки думаю можно ее решить на SQL.Можно и гвозди микроскопом забивать, но зачем?? Думаешь "на клиенте" тредстартер сможет? Хе-хе. Если человек не может сделать на одном языке программирования - он не сможет сделать ни на одном языке программирования. Задача вполне тривиальна. 1. [order] не более 6 чел суем в один seatsblock. 2. [order] более 6 чел сортируем по порядку: дите1, дите2... дитеN, взрослый1, дитеN+1, дитеN+2, дитеN+N, взрослый2, ...., где N = числодетей/числовзрослых. Если N>5 - ничо поделать низзя. Сортировать, если подумать, не обязательно. 3. Шинкуем по 6 чел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2018, 06:32 |
|
||
|
Рассадка по местам в самолете
|
|||
|---|---|---|---|
|
#18+
MindМожно и гвозди микроскопом забивать, но зачем?? Ну например, если другие средства и персоналии разработки отсутствуют. А задача не критична и решаема (хоть и криво) стандартными, проверенными, отработанными методами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2018, 09:03 |
|
||
|
Рассадка по местам в самолете
|
|||
|---|---|---|---|
|
#18+
Если куры денег не клюют, можно и подороже СУБД найти. А можно и бесплатным средством реализовать с лучшей производительностью к тому же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2018, 12:09 |
|
||
|
Рассадка по местам в самолете
|
|||
|---|---|---|---|
|
#18+
Так вот почему авиакомпания Победа раньше людей автоматически в случайном порядке рассаживала! Неужели решили решить эту проблему??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2018, 12:58 |
|
||
|
Рассадка по местам в самолете
|
|||
|---|---|---|---|
|
#18+
minya13_85, Код: sql 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. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2018, 13:34 |
|
||
|
Рассадка по местам в самолете
|
|||
|---|---|---|---|
|
#18+
982183MindМожно и гвозди микроскопом забивать, но зачем?? Ну например, если другие средства и персоналии разработки отсутствуют. А задача не критична и решаема (хоть и криво) стандартными, проверенными, отработанными методами.То есть пофигу на людей которые потом будут читать, искать ошибки и поддерживать это Г-но? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2018, 20:38 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=39738902&tid=1688659]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
32ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 258ms |
| total: | 388ms |

| 0 / 0 |
