메인 메뉴는 구성을 통해 특정 메뉴를 표시할지, 특정 메뉴에 특정 기능을 표시할지 제어할 수 있는 일종의 배경 관리 시스템입니다.
디자인과 구현에 관해 개인적인 요약은 다음과 같습니다.
(1)
데이터베이스 테이블로 저장
일반적으로 메인 메뉴는 전통적인 관계형 데이터베이스로 저장하는 방식을 기반으로 하는 두 가지 솔루션이 있습니다.
(1-1)
테이블 솔루션을 사용하면 테이블에는 부모-자식 관계를 연결하는 ID와 parentid가 포함됩니다.
(1-2)
투 테이블 솔루션을 사용하여 한 테이블은 메뉴의 상위-하위 관계를 기록하는 데 사용되고 다른 테이블은 순수하게 메뉴 정보를 기록합니다.
2가지 데이터 전송 솔루션도 있습니다:
(1-1-1)
백엔드는 데이터를 쿼리하여 백그라운드 코드 루프를 통해 구성하거나 SQL 트랜잭션을 사용하여 트리 구조를 구축한 다음 이를 프런트엔드에 전달합니다
(1-1-2)
백엔드는 데이터를 쿼리하고 이를 프런트엔드로 전달하므로 프런트엔드가 스스로 트리 구조를 구축할 수 있습니다.
(2)
Save in json
이 문제에 대해 주로 알고 싶은 방법입니다. 이전에 사용해 본 적이 있는지는 모르겠습니다. 그런 다음 메인 메뉴의 상위 및 하위 노드 정보를 json 형식으로 직접 구성하고 저장합니다. 구성 테이블이나 json 파일에서. 이렇게 하면 트리 구조를 구성하는 수고를 덜 수 있습니다. 하지만 순수한 json 형식이므로 데이터 구조가 복잡하지 않다면 수동으로 유지 관리해도 괜찮지만, 복잡한 상황이 발생하면 json에는 유지 관리 인터페이스를 작성해야 할 수도 있습니다. 프론트엔드인 sql과 유사한 쿼리 구문(js라고 가정) 추가, 삭제를 작성하고 수정 사항(특히 삭제)을 확인하는 것이 특히 복잡할 것입니다.
이것. . . . 평소 어떤 방법을 사용하시는지 모르겠어요? 가능하다면
동시에(2)用json保存
이 방법에 대한 의견이 있으시면 이야기해 주셔도 좋습니다.
성능, 확장성, 유지 관리성 등을 종합적으로 고려합니다.
솔루션은 기술에 따라 선택해야 합니다. 두 가지 솔루션 중 첫 번째는 관계형 데이터베이스 구현에 더 적합하고 두 번째는 NoSQL 데이터베이스 구현에 더 적합합니다.
요약하자면, 나중에 사용자, 사용자 그룹, 권한 및 기타 모듈을 설계할 때 메뉴 구조를 평면화하는 것이 더 편리할 것입니다. JSON 솔루션을 사용하여 이러한 작업을 수행하는 것은 더 복잡합니다.