From 64877869e67e89876fd91436c5b1b245c3b127ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=B3=B4=EA=B3=A4?= Date: Fri, 6 Mar 2026 14:34:20 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20[menu]=20menu=5Ffavorites=20=ED=85=8C?= =?UTF-8?q?=EC=9D=B4=EB=B8=94=20=EB=A7=88=EC=9D=B4=EA=B7=B8=EB=A0=88?= =?UTF-8?q?=EC=9D=B4=EC=85=98=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - tenant_id, user_id, menu_id, sort_order 컬럼 - unique 제약: (tenant_id, user_id, menu_id) - FK cascade delete: users, menus --- ..._06_143037_create_menu_favorites_table.php | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 database/migrations/2026_03_06_143037_create_menu_favorites_table.php diff --git a/database/migrations/2026_03_06_143037_create_menu_favorites_table.php b/database/migrations/2026_03_06_143037_create_menu_favorites_table.php new file mode 100644 index 0000000..e87f8a4 --- /dev/null +++ b/database/migrations/2026_03_06_143037_create_menu_favorites_table.php @@ -0,0 +1,37 @@ +id(); + $table->unsignedBigInteger('tenant_id')->comment('테넌트 ID'); + $table->unsignedBigInteger('user_id')->comment('사용자 ID'); + $table->unsignedBigInteger('menu_id')->comment('메뉴 ID'); + $table->integer('sort_order')->default(0)->comment('표시 순서'); + $table->timestamps(); + + $table->unique(['tenant_id', 'user_id', 'menu_id']); + $table->index(['tenant_id', 'user_id', 'sort_order']); + + $table->foreign('user_id')->references('id')->on('users')->cascadeOnDelete(); + $table->foreign('menu_id')->references('id')->on('menus')->cascadeOnDelete(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('menu_favorites'); + } +};