| 
 | 
| 
 
проектирование меню 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Как грамотно спроектировать таблицу(цы) меню, чтобы была неограниченая вложенность как узлов так и пунктов? Или ткните ссылкой... Что-то вроде такого: узел1 пункт1 пункт2 узел2 узел1 пункт1 узел1 пункт1 пункт2 узел2 пункт1 пункт1 пункт2 пункт1 пункт2 Желательно с примером рекурсивного обхода:) ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 14.06.2017, 09:06 | 
  
  
  
   | 
||
| 
 
проектирование меню 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 14.06.2017, 09:10 | 
  
  
  
   | 
||
| 
 
проектирование меню 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Чем не устраивает классика ID, ParentID  ? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 14.06.2017, 09:21 | 
  
  
  
   | 
||
| 
 
проектирование меню 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Да устраивает, но вдруг есть хорошая альтернатива. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 14.06.2017, 10:28 | 
  
  
  
   | 
||
| 
 
проектирование меню 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  olegeosДа устраивает, но вдруг есть хорошая альтернатива.Разве что: "Альтернатива - утки" (с) анек :) ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 14.06.2017, 10:47 | 
  
  
  
   | 
||
| 
 
проектирование меню 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  olegeosДа устраивает, но вдруг есть хорошая альтернатива. Альтернативы есть. Если узлов и пунктов не много, можно хранить в строке путь. Если вставка не важна, а важна выборка, то можно Nested Set ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 14.06.2017, 11:05 | 
  
  
  
   | 
||
| 
 
проектирование меню 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  olegeos Как грамотно спроектировать таблицу(цы) меню, чтобы была неограниченая вложенность как узлов так и пунктов?Если данным меню будут пользоватся люди, то  неограниченная  вложенность кончается где-то на 7-10 уровней иерархии (больше просто неудобно пользоватся). Так что материализованный путь наше все. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 14.06.2017, 17:40 | 
  
  
  
   | 
||
| 
 
проектирование меню 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  LSVЧем не устраивает классика ID, ParentID  ? Рано или поздно каждой роли(группа пользователей), в соответствии с правами, придётся давать доступ на определённые пункты. В соответствии с этим, дерево меню для каждого роли будет уникальным. Причём, хорошим моветоном считается случай, когда для своей роли мы можем назначить пункт в свой узел(логично, если пользователь часто обращается к пункту, то этот пункт должен ближе располагаться в меню) или взять местоположение, по умолчанию, из настроек. Как минимум, будет ID, ParentID, RoleID ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 15.06.2017, 10:03 | 
  
  
  
   | 
||
| 
 
проектирование меню 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  А мы вот в MongoDB храним в виде nested array, и называется это не Menu, а Site Structure, а все меню уже по ней строятся :) ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 15.06.2017, 10:13 | 
  
  
  
   | 
||
| 
 
проектирование меню 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  У нас был реализован вариант(не айс), когда есть стандартное дерево меню, а из него для каждого пользователя вычитается пункты и узлы к которым пользователь не имеет доступа. Дерево меню хранилось в таблице с id, parent_id. Убираемые пункты пользователя хранились в отдельной таблице. Обсчёт дерева меню пользователя происходил по схеме: Сначала брался нижний уровень дерева(допустим, уровень пунктов) из него вычитались хранимые пункты. Получали узлы с непустыми пунктами и так выше по дереву. В итоге, получили очень длительный обсчёт дерева меню(около 30 секунд). При выборе схемы исходили из того, что пользователи имеют доступ к подавляющему большинству форм(пунктов) - примерно 35 из 40, дальше изменение пунктов меню пользователей будет производится силами программистов( для экономии их временеми, изменения должны быть минимальны). ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 15.06.2017, 10:27 | 
  
  
  
   | 
||
| 
 | 

start [/forum/topic.php?fid=32&fpage=11&tid=1540163]:  | 
    0ms | 
get settings:  | 
    11ms | 
get forum list:  | 
    13ms | 
check forum access:  | 
    4ms | 
check topic access:  | 
    4ms | 
track hit:  | 
    41ms | 
get topic data:  | 
    11ms | 
get forum data:  | 
    2ms | 
get page messages:  | 
    45ms | 
get tp. blocked users:  | 
    1ms | 
| others: | 13ms | 
| total: | 145ms | 

| 0 / 0 | 

На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даете согласие с использованием данных технологий.