{"id":11878,"date":"2025-12-22T11:27:05","date_gmt":"2025-12-22T02:27:05","guid":{"rendered":"https:\/\/www.moonmile.net\/blog\/?p=11878"},"modified":"2025-12-30T15:30:40","modified_gmt":"2025-12-30T06:30:40","slug":"%e8%ab%96%e7%90%86%e5%89%8a%e9%99%a4%e3%81%a8%e7%89%a9%e7%90%86%e5%89%8a%e9%99%a4%e3%81%ae%e7%b6%9a%e3%81%8d","status":"publish","type":"post","link":"http:\/\/www.moonmile.net\/blog\/archives\/11878","title":{"rendered":"\u8ad6\u7406\u524a\u9664\u3068\u7269\u7406\u524a\u9664\u306e\u7d9a\u304d"},"content":{"rendered":"\n<p>\u8ad6\u7406\u524a\u9664\u3068\u7269\u7406\u524a\u9664\u306e\u5207\u308a\u5206\u3051\u3092\u5177\u4f53\u4f8b\u3092\u793a\u3057\u3066\u601d\u8003\u5b9f\u9a13\u3059\u308b<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-wp-embed is-provider-moonmile-solutions-blog wp-block-embed-moonmile-solutions-blog\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"sHQR9PA1C7\"><a href=\"https:\/\/www.moonmile.net\/blog\/archives\/11870\">\u8ad6\u7406\u524a\u9664\u3068\u7269\u7406\u524a\u9664\u306e\u5207\u308a\u5206\u3051\u3092\u5177\u4f53\u4f8b\u3092\u793a\u3057\u3066\u601d\u8003\u5b9f\u9a13\u3059\u308b<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"&#8220;\u8ad6\u7406\u524a\u9664\u3068\u7269\u7406\u524a\u9664\u306e\u5207\u308a\u5206\u3051\u3092\u5177\u4f53\u4f8b\u3092\u793a\u3057\u3066\u601d\u8003\u5b9f\u9a13\u3059\u308b&#8221; &#8212; Moonmile Solutions Blog\" src=\"https:\/\/www.moonmile.net\/blog\/archives\/11870\/embed#?secret=K8fEPMgGes#?secret=sHQR9PA1C7\" data-secret=\"sHQR9PA1C7\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>\u524d\u8a18\u4e8b\u306e\u7d9a\u304d\u3067\u3059\u3002\u65e2\u306b\u30d6\u30fc\u30e0\uff1f\u306f\u53bb\u3063\u3066\u3044\u308b\u306e\u3067\u3059\u304c\uff08\u82e6\u7b11\uff09\u3001\u6614\u306e\u539f\u7406\u539f\u5247\u306b\u3068\u3089\u308f\u308c\u904e\u304e\u308b\u3068\u601d\u8003\u505c\u6b62\u306b\u9665\u3063\u3066\u3057\u307e\u3046\u306e\u3067\u3001\u6700\u8fd1\u306e\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3082\u542b\u3081\u3066\u518d\u8003\u3057\u307e\u3057\u3087\u3046\u3001\u3063\u3066\u306e\u304c\u4e3b\u65e8\u3067\u3059\uff08\u3082\u3061\u308d\u3093\u3001\u3053\u306e\u8a18\u4e8b\u81ea\u4f53\u3082 10 \u5e74\u3082\u7d4c\u3066\u3070\u53e4\u304f\u306a\u308b\u308f\u3051\u3067\u3059\u304c\uff09\u3002<\/p>\n\n\n\n<p>\u6b8b\u308a\u306e\u30e2\u30c7\u30eb\u30d1\u30bf\u30fc\u30f3\u3092\u8003\u3048\u3066\u3044\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u56de\u8ee2\u5bff\u53f8\u306e\u53d7\u6ce8\u30b7\u30b9\u30c6\u30e0<\/li>\n\n\n\n<li>\u7a0e\u52d9\u95a2\u4fc2\u306e\u793e\u5185\u7d4c\u7406\u30b7\u30b9\u30c6\u30e0\u3001\u7d4c\u8cbb\u51e6\u7406<\/li>\n\n\n\n<li>\u793e\u5185\u306e\u30ca\u30ec\u30c3\u30b8\u7ba1\u7406\u3001\u9000\u8077\u8005\u306e\u7ba1\u7406<\/li>\n<\/ul>\n\n\n\n<p>\u3053\u308c\u3089\u306e\u30c6\u30fc\u30d6\u30eb\u3092\u773a\u3081\u305f\u5f8c\u3067\u3001\u5b9f\u969b\u306b SQL \u3084 ORM \u3092\u4f7f\u3063\u3066\u3069\u306e\u3088\u3046\u306b\u306a\u308b\u306e\u304b\u3092\u63a8\u6e2c\u3057\u3066\u307f\u308c\u3070\u3088\u3044\u308f\u3051\u3067\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>\u56de\u8ee2\u5bff\u53f8\u306e\u53d7\u6ce8\u30b7\u30b9\u30c6\u30e0<\/strong><\/h2>\n\n\n\n<p>\u3053\u308c\u306f\u65b0\u4eba\u7814\u4fee\u7528\u306b\u4f5c\u3063\u305f\u306e\u3067\u3001\u3053\u308c\u3092\u30d9\u30fc\u30b9\u306b\u3057\u307e\u3059\u3002<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: sql; title: ; notranslate\" title=\"\">\n-- \u30c6\u30fc\u30d6\u30eb\u5e2d\nCREATE TABLE seats (\n    id INT PRIMARY KEY AUTO_INCREMENT,\n    table_number INT NOT NULL,\n    status ENUM(&#039;available&#039;, &#039;occupied&#039;) DEFAULT &#039;available&#039;,\n    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;\n\n-- \u30c6\u30fc\u30d6\u30eb\u6ce8\u6587\nCREATE TABLE orders (\n    id INT AUTO_INCREMENT,\n    seat_id INT NOT NULL,\n    order_id INT NOT NULL,\n    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,\n    PRIMARY KEY (id),\n    INDEX idx_seat_id (seat_id),\n    INDEX idx_status (status)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;\n\n-- \u6ce8\u6587\u5c65\u6b74\nCREATE TABLE order_history (\n    id INT PRIMARY KEY AUTO_INCREMENT,\n    order_id INT NOT NULL,\n    seat_id INT NOT NULL,\n    product_id INT NOT NULL,\n    quantity INT NOT NULL,\n    status ENUM(&#039;pending&#039;, &#039;in_progress&#039;, &#039;completed&#039;) DEFAULT &#039;pending&#039;,\n    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,\n    INDEX idx_order_id (order_id),\n    INDEX idx_seat_id (seat_id)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;\n\n-- \u5546\u54c1\u30de\u30b9\u30bf\nCREATE TABLE products (\n    id INT PRIMARY KEY AUTO_INCREMENT,\n    name VARCHAR(100) NOT NULL,\n    price DECIMAL(10, 2) NOT NULL,\n    description TEXT,\n    image_url VARCHAR(100),\n    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;\n-- \u30ab\u30c6\u30b4\u30ea\nCREATE TABLE categories (\n    id INT PRIMARY KEY AUTO_INCREMENT,\n    name VARCHAR(100) NOT NULL,\n    description TEXT,\n    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;\n\n-- \u5546\u54c1\u30ab\u30c6\u30b4\u30ea\nCREATE TABLE product_categories (\n    product_id INT NOT NULL,\n    category_id INT NOT NULL,\n    PRIMARY KEY (product_id, category_id),\n    INDEX idx_product_id (product_id),\n    INDEX idx_category_id (category_id)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;\n\n-- \u5546\u54c1\u5728\u5eab\nCREATE TABLE product_stock (\n    product_id INT NOT NULL,\n    quantity INT NOT NULL,\n    PRIMARY KEY (product_id),\n    INDEX idx_product_id (product_id)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;\n<\/pre><\/div>\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/12\/image-54.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"944\" src=\"https:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/12\/image-54-1024x944.png\" alt=\"\" class=\"wp-image-11879\" srcset=\"http:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/12\/image-54-1024x944.png 1024w, http:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/12\/image-54-300x277.png 300w, http:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/12\/image-54-768x708.png 768w, http:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/12\/image-54-1536x1416.png 1536w, http:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/12\/image-54.png 1541w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p>\u3061\u3087\u3063\u3068\u65b0\u4eba\u7814\u4fee\u7528\u306b\u4f5c\u3063\u305f\u306e\u3067 deleted_at \u304c\u5165\u3063\u3066\u3044\u306a\u3044\u306e\u3067\u3059\u304c\u3002\u3053\u308c\u3082 BOM \u8868\u3068\u540c\u3058\u30d1\u30bf\u30fc\u30f3\u3067\u3001deleted_at \u3092\u5165\u308c\u308b\u30d1\u30bf\u30fc\u30f3\u304c\u8003\u3048\u3089\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u5546\u54c1\u30de\u30b9\u30bf\u30fc\uff08\u5bff\u53f8\uff09\u306e\u5024\u6bb5\u304c\u5909\u308f\u3063\u305f\u6642\u306b\u306f\u3001products.price \u3092\u66f4\u65b0\u3059\u308b\u3053\u3068\u306b\u306a\u308b\u306e\u3067\u3059\u304c\u3001\u904e\u53bb\u306e\u6ce8\u6587\u5c65\u6b74\u3092\u6b8b\u3059\u305f\u3081\u306b deleted_at \u30ab\u30e9\u30e0\u3092\u5165\u308c\u308b\u304b\u3001\u904e\u53bb\u30c7\u30fc\u30bf\u306e\u30c6\u30fc\u30d6\u30eb\u3092\u7528\u610f\u3059\u308b\u304b\u3057\u306a\u304f\u3066\u306f\u3044\u3051\u307e\u305b\u3093\u3002\u3053\u306e\u3068\u304d\u306b\u3001\u30ea\u30a2\u30eb\u30bf\u30a4\u30e0\u306b\u4fa1\u683c\u306e\u5909\u66f4\u304c\u304b\u304b\u308b\u306e\u304b\u3001\u305d\u308c\u3068\u3082\u65e5\u6b21\u3084\u9031\u6b21\u306e\u5358\u4f4d\u3067\u4fa1\u683c\u306e\u5909\u66f4\u304c\u304b\u304b\u308b\u306e\u304b\uff1f\u306b\u3088\u3063\u3066\u3001\u8a2d\u8a08\u304c\u9055\u3063\u3066\u3044\u307e\u3059\u3002<br>\u5f53\u305f\u308a\u524d\u306e\u3088\u3046\u3067\u3059\u304c\u30011\u65e5\u306e\u5546\u58f2\u306e\u3046\u3061\u306b\u5e97\u5185\u3067\u306f\u4fa1\u683c\u306e\u5909\u66f4\u304c\u3055\u308c\u308b\u3053\u3068\u306f\u306a\u3044\u3067\u3057\u3087\u3046\u3002\u305d\u306e\u5834\u5408\u306b\u306f\u3001\u5e97\u5185\u306e\u5ba2\u304c\u7d42\u308f\u3063\u305f\u5f8c\u306b\u7cbe\u7b97\u51e6\u7406\u3092\u884c\u3046\u30d0\u30c3\u30c1\u3067\u3001\u904e\u53bb\u306e\u5546\u54c1\u30c7\u30fc\u30bf\u306b\u79fb\u3057\u305f\u308a\u3001\u304a\u5ba2\u306e\u5c65\u6b74\u691c\u7d22\u3092\u8abf\u7bc0\u3057\u305f\u308a\u3059\u308b\u3053\u3068\u304c\u53ef\u80fd\u3067\u3059\u3002<br>\u3057\u304b\u3057\u3001WEB \u30b5\u30a4\u30c8\u4e88\u7d04\u306e\u3088\u3046\u306a\uff08\u5bff\u53f8\u306e\u5834\u5408\u306f\u3042\u308b\u3068\u306f\u601d\u3048\u306a\u3044\u3051\u3069\uff09\u300124\u6642\u9593\u904b\u7528\u3067\u3001\u30ea\u30a2\u30eb\u30bf\u30a4\u30e0\u306b\u4fa1\u683c\u304c\u5207\u308a\u66ff\u308f\u308b\u5834\u5408\u306f\u3069\u3046\u3067\u3057\u3087\u3046\u304b\uff1f\u3000\u3053\u306e\u5834\u5408\u306b\u306f deleted_at \u30ab\u30e9\u30e0\u306e\u307b\u3046\u304c\u3088\u3055\u305d\u3046\u306a\u6c17\u304c\u3057\u307e\u3059\u3002\u30bf\u30a4\u30df\u30f3\u30b0\u7684\u306b\u3001\u6ce8\u6587 \u2192 \u7cbe\u7b97 \u306e\u9593\u306b\u6642\u9593\u5dee\u304c\u3042\u308b\u306e\u3067\u3001\u6ce8\u6587\u6642\u306e\u4fa1\u683c\u3092\u4fdd\u5b58\u3057\u3066\u304a\u304f\u304b\u3001\u7cbe\u7b97\u6642\u306b\u4fa1\u683c\u304c\u305a\u308c\u3066\u3044\u305f\uff08\u8a72\u5f53\u3059\u308b\u5546\u54c1ID\u304c\u30de\u30c3\u30c1\u3057\u306a\u304b\u3063\u305f\uff09\u3068\u304d\u3092\u8003\u616e\u3059\u308b\u5fc5\u8981\u304c\u3067\u3066\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u3044\u308f\u3086\u308b\u3001\u6642\u9593\u5dee\u306e\u6709\u7121\u3001\u66f4\u65b0\u2192\u53c2\u7167\u306e\u30bf\u30a4\u30df\u30f3\u30b0\u3067\u5dee\u304c\u3067\u3066\u304f\u308b\u5834\u5408\u3001\u3092\u8003\u616e\u3059\u308b\u304b\u5426\u304b\u3001\u304c\u30dd\u30a4\u30f3\u30c8\u306b\u306a\u308a\u307e\u3059\u3002\u307e\u3042\u3001\u5bff\u53f8\u6ce8\u6587\u306e\u5834\u5408\u306f\u3001\u3042\u307e\u308a\u30ea\u30a2\u30eb\u30bf\u30a4\u30e0\u306b\u4fa1\u683c\u304c\u5909\u308f\u308b\u3053\u3068\u306f\u306a\u3044\u3068\u601d\u3044\u307e\u3059\u304c\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>\u7a0e\u52d9\u95a2\u4fc2\u306e\u793e\u5185\u7d4c\u7406\u30b7\u30b9\u30c6\u30e0\u3001\u7d4c\u8cbb\u51e6\u7406<\/strong><\/h2>\n\n\n\n<p>\u7d4c\u8cbb\u51e6\u7406\u306e\u5834\u5408\u306f\u3082\u3046\u5c11\u3057\u9577\u3044\u30b9\u30d1\u30f3\u3067\u6c7a\u6e08\u306e\u30bf\u30a4\u30df\u30f3\u30b0\u304c\u7570\u306a\u308a\u307e\u3059\u3002\u305f\u3068\u3048\u3070\u3001\u540c\u3058 PC \u3092\u8cb7\u3063\u305f\u3068\u3057\u3066\u3082\u8cfc\u5165\u6642\u671f\u306b\u3088\u308a\u4fa1\u683c\u304c\u5909\u308f\u3063\u305f\u308a\u6d88\u8cbb\u7a0e\u304c\u5909\u308f\u3063\u305f\u308a\u3059\u308b\u3053\u3068\u306f\u3088\u304f\u3042\u308a\u307e\u3059\u3002<br>\u3053\u306e\u7d4c\u8cbb\u7cbe\u7b97\u3092\u5f8c\u304b\u3089\u4fee\u6b63\u3059\u308b\u30d1\u30bf\u30fc\u30f3\u3092\u8003\u3048\u3066\u307f\u307e\u3057\u3087\u3046\u3002\u793e\u54e1\u304c\u7d4c\u8cbb\u7cbe\u7b97\u3092\u3059\u308b\u3068\u304d\u306b\u5165\u529b\u3057\u305f\u5024\u306f\u306a\u3093\u3089\u304b\u306e\u5f62\u3067\u4fdd\u6301\u3057\u3066\u304a\u3044\u3066\u3001\u5f8c\u304b\u3089\u7d4c\u7406\u90e8\u9580\u3084\u7a0e\u7406\u58eb\u304c\u4fee\u6b63\u3059\u308b\u30d1\u30bf\u30fc\u30f3\u3067\u3059\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u7269\u54c1\u8cfc\u5165\u30c6\u30fc\u30d6\u30eb<\/li>\n\n\n\n<li>\u7d4c\u8cbb\u7cbe\u7b97\u7533\u8acb<\/li>\n\n\n\n<li>\u7d4c\u8cbb\u7cbe\u7b97\u627f\u8a8d\u30d5\u30ed\u30fc<\/li>\n\n\n\n<li>\u7d4c\u8cbb\u7cbe\u7b97\u306e\u4fee\u6b63<\/li>\n\n\n\n<li>\u4f1a\u8a08\u4ed5\u5206\u3051\u30c6\u30fc\u30d6\u30eb<\/li>\n\n\n\n<li>\u7d4c\u8cbb\u9805\u76ee\u30de\u30b9\u30bf<\/li>\n\n\n\n<li>\u6d88\u8cbb\u7a0e\u30de\u30b9\u30bf<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: sql; title: ; notranslate\" title=\"\">\n-- \u7269\u54c1\u8cfc\u5165\u30c6\u30fc\u30d6\u30eb\nCREATE TABLE purchases (\n    id INT PRIMARY KEY AUTO_INCREMENT,\n    employee_id INT NOT NULL,\n    purchase_date DATE NOT NULL,\n    amount DECIMAL(10, 2) NOT NULL,\n    tax_rate DECIMAL(5, 2) NOT NULL,\n    description TEXT,\n    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,\n    INDEX idx_employee_id (employee_id),\n    INDEX idx_purchase_date (purchase_date)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;\n\n-- \u7d4c\u8cbb\u7cbe\u7b97\u7533\u8acb\nCREATE TABLE expense_claims (\n    id INT PRIMARY KEY AUTO_INCREMENT,\n    employee_id INT NOT NULL,\n    purchase_id INT NOT NULL,\n    claimed_amount DECIMAL(10, 2) NOT NULL,\n    expense_category_id INT NOT NULL,\n    claim_date DATE NOT NULL,\n    status ENUM(&#039;draft&#039;, &#039;submitted&#039;, &#039;approved&#039;, &#039;rejected&#039;) DEFAULT &#039;draft&#039;,\n    notes TEXT,\n    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,\n    deleted_at TIMESTAMP NULL,\n    INDEX idx_employee_id (employee_id),\n    INDEX idx_purchase_id (purchase_id),\n    INDEX idx_status (status),\n    FOREIGN KEY (purchase_id) REFERENCES purchases(id)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;\n\n-- \u7d4c\u8cbb\u7cbe\u7b97\u627f\u8a8d\u30d5\u30ed\u30fc\nCREATE TABLE expense_approvals (\n    id INT PRIMARY KEY AUTO_INCREMENT,\n    expense_claim_id INT NOT NULL,\n    approver_id INT NOT NULL,\n    approval_status ENUM(&#039;pending&#039;, &#039;approved&#039;, &#039;rejected&#039;) DEFAULT &#039;pending&#039;,\n    comment TEXT,\n    approved_at TIMESTAMP NULL,\n    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,\n    INDEX idx_expense_claim_id (expense_claim_id),\n    INDEX idx_approver_id (approver_id),\n    FOREIGN KEY (expense_claim_id) REFERENCES expense_claims(id)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;\n\n-- \u7d4c\u8cbb\u7cbe\u7b97\u306e\u4fee\u6b63\u5c65\u6b74\nCREATE TABLE expense_revisions (\n    id INT PRIMARY KEY AUTO_INCREMENT,\n    expense_claim_id INT NOT NULL,\n    original_amount DECIMAL(10, 2) NOT NULL,\n    revised_amount DECIMAL(10, 2) NOT NULL,\n    reason TEXT,\n    revised_by INT NOT NULL,\n    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n    INDEX idx_expense_claim_id (expense_claim_id),\n    FOREIGN KEY (expense_claim_id) REFERENCES expense_claims(id)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;\n\n-- \u4f1a\u8a08\u4ed5\u5206\u3051\u30c6\u30fc\u30d6\u30eb\nCREATE TABLE journal_entries (\n    id INT PRIMARY KEY AUTO_INCREMENT,\n    expense_claim_id INT NOT NULL,\n    account_code VARCHAR(20) NOT NULL,\n    debit DECIMAL(10, 2) DEFAULT 0,\n    credit DECIMAL(10, 2) DEFAULT 0,\n    entry_date DATE NOT NULL,\n    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n    INDEX idx_expense_claim_id (expense_claim_id),\n    INDEX idx_account_code (account_code),\n    FOREIGN KEY (expense_claim_id) REFERENCES expense_claims(id)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;\n\n-- \u7d4c\u8cbb\u9805\u76ee\u30de\u30b9\u30bf\nCREATE TABLE expense_categories (\n    id INT PRIMARY KEY AUTO_INCREMENT,\n    name VARCHAR(100) NOT NULL,\n    account_code VARCHAR(20),\n    description TEXT,\n    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,\n    deleted_at TIMESTAMP NULL\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;\n\n-- \u6d88\u8cbb\u7a0e\u30de\u30b9\u30bf\nCREATE TABLE tax_rates (\n    id INT PRIMARY KEY AUTO_INCREMENT,\n    rate DECIMAL(5, 2) NOT NULL,\n    effective_date DATE NOT NULL,\n    expired_date DATE,\n    description TEXT,\n    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;\n<\/pre><\/div>\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/12\/image-55.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"950\" src=\"https:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/12\/image-55-1024x950.png\" alt=\"\" class=\"wp-image-11880\" srcset=\"http:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/12\/image-55-1024x950.png 1024w, http:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/12\/image-55-300x278.png 300w, http:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/12\/image-55-768x712.png 768w, http:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/12\/image-55.png 1519w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p>\u3053\u308c\u3082 AI \u306b\u4f5c\u3063\u3066\u8cb0\u3063\u305f\u30d1\u30bf\u30fc\u30f3\u306a\u306e\u3067\u3001 deleted_at \u30ab\u30e9\u30e0\u3092\u30c1\u30a7\u30c3\u30af\u3057\u307e\u3059\u3002\u7d4c\u8cbb\u7cbe\u7b97\u7533\u8acb\u30c6\u30fc\u30d6\u30eb\u3084\u7d4c\u8cbb\u9805\u76ee\u30de\u30b9\u30bf\u306b\u5165\u3063\u3066\u3044\u307e\u3059\u306d\u3002<\/p>\n\n\n\n<p>\u7d4c\u8cbb\u7cbe\u7b97\u7533\u8acb\uff08expense_claims\uff09\u306f\u3001\u7533\u8acb\u3057\u305f\u72b6\u614b\u3092 status \u30ab\u30e9\u30e0\u3067\u4fdd\u6301\u3057\u3066\u3044\u308b\u306e\u3067\u3001deleted_at \u30ab\u30e9\u30e0\u306e\u610f\u5473\u306f\u306a\u3093\u3089\u304b\u306e\u5f62\u3067 &#8220;\u5b8c\u5168\u306b\u524a\u9664\u3059\u308b&#8221; \u3068\u3044\u3046\u610f\u5473\u306b\u306a\u308a\u307e\u3059\u3002\u7533\u8acb\u81ea\u4f53\u306f approved \u3067\u5b8c\u4e86\u3068\u306a\u308b\u306e\u3067\u3001approved \u306e\u5f8c\u306b\u793e\u5185\u7d4c\u7406\u3067\u524a\u9664\u306b\u3059\u308b\u306e\u304b\u3001\u305d\u308c\u3068\u3082 draft \u306e\u6bb5\u968e\u306a\u306e\u3067\u30c7\u30fc\u30bf\u7684\u306b\u524a\u9664\u3059\u308b\u306e\u304b\u3068\u3044\u3046\u610f\u5473\u3067\u3057\u3087\u3046\u3002<br>\u3053\u3053\u306f\u7d4c\u7406\u30b7\u30b9\u30c6\u30e0\u306e\u5c65\u6b74\u306b\u95a2\u3059\u308b\u3082\u306e\u306a\u306e\u3067\u3001<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u53b3\u683c\u306a\u4f1a\u8a08\u30b7\u30b9\u30c6\u30e0\u3068\u3057\u3066\u5c65\u6b74\u3092\u91cd\u8996\u3057\u305f\u3044\u3068\u304d\u306f\u3001DELETE \u3092\u7981\u6b62\u3057\u3066\u3001deleted_at \u3067\u5bfe\u5fdc\u3059\u308b<\/li>\n\n\n\n<li>\u3042\u308b\u7a0b\u5ea6\u3001\u67d4\u8edf\u306b\u904b\u7528\u3057\u305f\u3044\u3068\u304d\u306f\u3001deleted_at \u30ab\u30e9\u30e0\u3092\u4f7f\u308f\u305a\u306b DELETE \u3057\u3066\u3057\u307e\u3046<\/li>\n\n\n\n<li>\u64cd\u4f5c\u5c65\u6b74\u3092\u6b8b\u3059\u305f\u3081\u306b\u3001\u30c8\u30ea\u30ac\u30fc\u3092\u4f7f\u3063\u3066\u5c65\u6b74\u30c6\u30fc\u30d6\u30eb\u306b INSERT \u3059\u308b<\/li>\n<\/ul>\n\n\n\n<p>\u306a\u3069\u306e\u624b\u6bb5\u304c\u8003\u3048\u3089\u308c\u307e\u3059\u3002\u3053\u308c\u306f\u8a2d\u8a08\u4e0a\u3067\u63fa\u308c\u308b\u3068\u3053\u308d\u304b\u306a\u3068\u3002<\/p>\n\n\n\n<p>\u7d4c\u8cbb\u9805\u76ee\u30de\u30b9\u30bf\uff08expense_categories\uff09\u306e\u5834\u5408\u306f\u3001\u904e\u53bb\u306e id \u3092\u53c2\u7167\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u306e\u3067\u30c6\u30fc\u30d6\u30eb\u5185\u306b\u6b8b\u3057\u3066\u304a\u3044\u305f\u307b\u3046\u304c\u7121\u96e3\u3067\u3059\u3002deleted_at \u30ab\u30e9\u30e0\u3092\u610f\u8b58\u3059\u308b\u5834\u5408\u306f\u3001UI \u304b\u3089\u9078\u629e\u3059\u308b\u30d1\u30bf\u30fc\u30f3\u306a\u3069\u9650\u5b9a\u7684\u306b\u306a\u308b\u306e\u3067\u9593\u9055\u3044\u306f\u8d77\u3053\u308a\u306b\u304f\u3044\u304b\u306a\u3068\u601d\u308f\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>\u793e\u5185\u306e\u30ca\u30ec\u30c3\u30b8\u7ba1\u7406\u3001\u9000\u8077\u8005\u306e\u7ba1\u7406<\/strong><\/h2>\n\n\n\n<p>\u5178\u578b\u7684\u306a\u793e\u5185SNS\u306e\u904b\u7528\u3092\u8003\u3048\u3066\u307f\u307e\u3057\u3087\u3046\u3002\u793e\u5185\u30ca\u30ec\u30c3\u30b8\u3067\u306f\u63b2\u793a\u677f\u3092\u904b\u55b6\u3057\u3066\u3044\u3066\u3001\u6295\u7a3f\u30ed\u30b0\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002\u3057\u304b\u3057\u3001\u6295\u7a3f\u8005\u81ea\u8eab\u306f\u9000\u8077\u3059\u308b\u53ef\u80fd\u6027\u304c\u3042\u308b\u306e\u3067\u3001\u9000\u8077\u8005\u306e\u60c5\u5831\uff08\u90e8\u7f72\u3001\u6a29\u9650\u306a\u3069\uff09\u3092\u3069\u3046\u3059\u308b\u306e\u304b\uff1f\u3000\u3068\u3044\u3046\u554f\u984c\u3092\u8003\u3048\u307e\u3059\u3002\u3082\u3068\u3082\u3068\u3001\u90e8\u7f72\u306f\u5909\u308f\u308b\u53ef\u80fd\u6027\u304c\u3042\u308b\u306e\u3067\u3001\u6295\u7a3f\u6a29\u9650\u3084\u95b2\u89a7\u6a29\u9650\u306f\u6642\u9593\u3092\u7d4c\u308b\u3068\u5909\u308f\u3063\u3066\u3044\u304d\u307e\u3059\u3002\u305f\u3060\u3057\u3001\u6295\u7a3f\u8a18\u4e8b\u3084\u6295\u7a3f\u30ed\u30b0\u81ea\u4f53\u306f\u3001\u5f53\u6642\u306e\u8a18\u9332\u3068\u3057\u3066\u6b8b\u3057\u3066\u304a\u304d\u305f\u3044\u30d1\u30bf\u30fc\u30f3\u3067\u3059\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u6295\u7a3f\u8a18\u4e8b\u30c6\u30fc\u30d6\u30eb<\/li>\n\n\n\n<li>\u6295\u7a3f\u8005\u30ed\u30b0<\/li>\n\n\n\n<li>\u6295\u7a3f\u8a18\u4e8b\u306e\u30ab\u30c6\u30b4\u30ea<\/li>\n\n\n\n<li>\u6295\u7a3f\u8a18\u4e8b\u306e\u95b2\u89a7\u6a29\u9650<\/li>\n\n\n\n<li>\u793e\u54e1\u30de\u30b9\u30bf<\/li>\n\n\n\n<li>\u90e8\u7f72\u30de\u30b9\u30bf<\/li>\n<\/ul>\n\n\n\n<p>\u203b \u6295\u7a3f\u8a18\u4e8b\u306b\u306f\u3001\u6295\u7a3f\u3057\u305f\u793e\u54e1\u306e\u5f53\u6642\u306e\u90e8\u7f72\/\u6295\u7a3f\u540d\u304c\u8868\u793a\u3055\u308c\u308b<br>\u203b \u793e\u54e1\u306e\u90e8\u7f72\u306f\u5909\u308f\u308b\u53ef\u80fd\u6027\u304c\u3042\u308b\u3002<br>\u203b \u793e\u54e1\u304c\u9000\u8077\u3059\u308b\u5834\u5408\u3082\u8003\u616e\u3059\u308b\u3002<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: sql; title: ; notranslate\" title=\"\">\n-- \u793e\u54e1\u30de\u30b9\u30bf\nCREATE TABLE employees (\n    id INT PRIMARY KEY AUTO_INCREMENT,\n    name VARCHAR(100) NOT NULL,\n    email VARCHAR(100) NOT NULL UNIQUE,\n    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,\n    deleted_at TIMESTAMP NULL,\n    INDEX idx_deleted_at (deleted_at)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;\n\n-- \u90e8\u7f72\u30de\u30b9\u30bf\nCREATE TABLE departments (\n    id INT PRIMARY KEY AUTO_INCREMENT,\n    name VARCHAR(100) NOT NULL,\n    description TEXT,\n    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,\n    deleted_at TIMESTAMP NULL\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;\n\n-- \u793e\u54e1\u90e8\u7f72\u5c65\u6b74\nCREATE TABLE employee_departments (\n    id INT PRIMARY KEY AUTO_INCREMENT,\n    employee_id INT NOT NULL,\n    department_id INT NOT NULL,\n    assigned_at DATE NOT NULL,\n    unassigned_at DATE NULL,\n    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n    INDEX idx_employee_id (employee_id),\n    INDEX idx_department_id (department_id),\n    FOREIGN KEY (employee_id) REFERENCES employees(id),\n    FOREIGN KEY (department_id) REFERENCES departments(id)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;\n\n-- \u6295\u7a3f\u8a18\u4e8b\u30ab\u30c6\u30b4\u30ea\nCREATE TABLE post_categories (\n    id INT PRIMARY KEY AUTO_INCREMENT,\n    name VARCHAR(100) NOT NULL,\n    description TEXT,\n    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;\n\n-- \u6295\u7a3f\u8a18\u4e8b\nCREATE TABLE posts (\n    id INT PRIMARY KEY AUTO_INCREMENT,\n    employee_id INT NOT NULL,\n    category_id INT NOT NULL,\n    title VARCHAR(255) NOT NULL,\n    content TEXT NOT NULL,\n    posted_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,\n    deleted_at TIMESTAMP NULL,\n    INDEX idx_employee_id (employee_id),\n    INDEX idx_category_id (category_id),\n    INDEX idx_posted_at (posted_at),\n    FOREIGN KEY (employee_id) REFERENCES employees(id),\n    FOREIGN KEY (category_id) REFERENCES post_categories(id)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;\n\n-- \u6295\u7a3f\u30ed\u30b0\uff08\u6295\u7a3f\u5f53\u6642\u306e\u793e\u54e1\u60c5\u5831\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\uff09\nCREATE TABLE post_logs (\n    id INT PRIMARY KEY AUTO_INCREMENT,\n    post_id INT NOT NULL,\n    employee_id INT NOT NULL,\n    employee_name VARCHAR(100) NOT NULL,\n    department_name VARCHAR(100),\n    posted_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n    INDEX idx_post_id (post_id),\n    INDEX idx_employee_id (employee_id),\n    FOREIGN KEY (post_id) REFERENCES posts(id),\n    FOREIGN KEY (employee_id) REFERENCES employees(id)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;\n\n-- \u6295\u7a3f\u8a18\u4e8b\u306e\u95b2\u89a7\u6a29\u9650\nCREATE TABLE post_permissions (\n    id INT PRIMARY KEY AUTO_INCREMENT,\n    post_id INT NOT NULL,\n    department_id INT,\n    is_public BOOLEAN DEFAULT FALSE,\n    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,\n    INDEX idx_post_id (post_id),\n    INDEX idx_department_id (department_id),\n    FOREIGN KEY (post_id) REFERENCES posts(id),\n    FOREIGN KEY (department_id) REFERENCES departments(id)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;\n<\/pre><\/div>\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/12\/image-56.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"944\" src=\"https:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/12\/image-56-1024x944.png\" alt=\"\" class=\"wp-image-11881\" srcset=\"http:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/12\/image-56-1024x944.png 1024w, http:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/12\/image-56-300x277.png 300w, http:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/12\/image-56-768x708.png 768w, http:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/12\/image-56.png 1533w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p>\u591a\u5206\u3001\u3053\u306e\u624b\u306e DB \u306f\u5b9a\u756a\u3060\u3068\u601d\u3046\u306e\u3067\u3059\u304c AI \u304c\u4f5c\u6210\u3059\u308b\u3068 deleted_at \u30ab\u30e9\u30e0\u304c\u7d50\u69cb\u5165\u3063\u3066\u3044\u307e\u3059\u3002\u304a\u305d\u3089\u304f\u3001React \u3084 Vue \u306a\u3069\u3092\u4f7f\u3063\u3066\u3001\u81ea\u52d5\u751f\u6210\u3059\u308b\u30d1\u30bf\u30fc\u30f3\u304c\u591a\u3044\u304b\u3089\u3067\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<p>\u8208\u5473\u6df1\u3044\u306e\u306f\u6295\u7a3f\u8a18\u4e8b\uff08posts\uff09\u30c6\u30fc\u30d6\u30eb\u306b\u306f deleted_at \u304c\u5165\u3063\u3066\u3044\u307e\u3059\u304c\u3001\u6295\u7a3f\u30ed\u30b0\uff08post_logs\uff09\u30c6\u30fc\u30d6\u30eb\u306b\u306f deleted_at \u304c\u5165\u3063\u3066\u3044\u307e\u305b\u3093\u3002\u57fa\u672c\u7684\u306b\u30ed\u30b0\u306f\u6d88\u3059\u3053\u3068\u304c\u306a\u3044\u3001\u3080\u3057\u308d\u6d88\u3057\u3066\u306f\u3044\u3051\u306a\u3044\u306e\u3067 deleted_at \u306f\u3064\u3051\u307e\u305b\u3093\u3002\u6539\u5909\u3067\u304d\u306a\u3044\u3088\u3046\u306b\u3059\u308b\u305f\u3081\u3067\u3059\u3002<br>\u6295\u7a3f\u8a18\u4e8b\u306e\u95b2\u89a7\u6a29\u9650\uff08post_permissions\uff09\u30c6\u30fc\u30d6\u30eb\u306b\u3082 deleted_at \u306f\u5165\u3063\u3066\u3044\u307e\u305b\u3093\u3002\u3053\u306e\u3088\u3046\u306a\u88dc\u52a9\u30c6\u30fc\u30d6\u30eb\u306f\u4e3b\u3068\u306a\u308b\u30c6\u30fc\u30d6\u30eb\uff08posts\uff09\u306b\u4f9d\u5b58\u3057\u3066\u3044\u308b\u306e\u3067\u3001\u4e3b\u30c6\u30fc\u30d6\u30eb\u304c\u524a\u9664\u3055\u308c\u308c\u3070\uff08\u3053\u306e\u5834\u5408\u306f is_deleted \u30d5\u30e9\u30b0\u3067\u8ad6\u7406\u524a\u9664\u3067\u3059\u304c\uff09\u3001\u88dc\u52a9\u30c6\u30fc\u30d6\u30eb\u306e\u307b\u3046\u306f\u691c\u7d22\u3067\u81ea\u52d5\u7684\u306b\u9664\u5916\u3055\u308c\u308b\u305f\u3081\u3067\u3059\u3002\u306a\u306e\u3067\u3001\u88dc\u52a9\u30c6\u30fc\u30d6\u30eb\u306b\u306f deleted_at \u306f\u4e0d\u8981\u3067\u3059\u3002<\/p>\n\n\n\n<p>\u3053\u306e\u3042\u305f\u308a\u304b\u3089\u8003\u3048\u3066\u3001\u8ad6\u7406\u524a\u9664\uff08deleted_at\uff09\u3068\u7269\u7406\u524a\u9664\uff08DELETE\uff09\u306e\u5207\u308a\u5206\u3051\u306b\u306f\u4e00\u5b9a\u306e\u30eb\u30fc\u30eb\u304c\u3042\u308a\u307e\u3059\u3002\u305f\u3060\u3057\u3001\u6295\u7a3f\u8a18\u4e8b\uff08posts\uff09\u30c6\u30fc\u30d6\u30eb\u3092\u3069\u3046\u6271\u3046\u304b\u3001\u90e8\u7f72\u3084\u6a29\u9650\u306a\u3069\u304c\u5909\u66f4\u3059\u308b\u5834\u5408\u306f\u3069\u3061\u3089\u3092\u63a1\u7528\u3059\u308b\u306e\u304b\uff1f\u3000\u306b\u95a2\u3057\u3066\u306f\u3001\u5229\u7528\u3059\u308b\u5834\u9762\u3092\u3088\u304f\u8003\u3048\u305f\u307b\u3046\u304c\u3088\u3044\u3001\u3068\u3044\u3046\u6307\u91dd\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u3053\u308c\u3067\u3072\u3068\u901a\u308a\u3001DDL \u3068 ER \u56f3\u3092\u793a\u3059\u3053\u3068\u304c\u3067\u304d\u305f\u306e\u3067\u3001\u6b21\u56de\u306f\u5177\u4f53\u7684\u306b SQL \u3084 ORM \u3092\u4f7f\u3063\u305f\u3068\u304d\u306e\u5177\u4f53\u4f8b\u3092\u8003\u3048\u3066\u3044\u304d\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u8ad6\u7406\u524a\u9664\u3068\u7269\u7406\u524a\u9664\u306e\u5207\u308a\u5206\u3051\u3092\u5177\u4f53\u4f8b\u3092\u793a\u3057\u3066\u601d\u8003\u5b9f\u9a13\u3059\u308b \u524d\u8a18\u4e8b\u306e\u7d9a\u304d\u3067\u3059\u3002\u65e2\u306b\u30d6\u30fc\u30e0\uff1f\u306f\u53bb\u3063\u3066\u3044\u308b\u306e\u3067\u3059\u304c\uff08\u82e6\u7b11\uff09\u3001\u6614\u306e\u539f\u7406\u539f\u5247\u306b\u3068\u3089\u308f\u308c\u904e\u304e\u308b\u3068\u601d\u8003\u505c\u6b62\u306b\u9665\u3063\u3066\u3057\u307e\u3046\u306e\u3067\u3001\u6700\u8fd1\u306e\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3082\u542b\u3081\u3066\u518d\u8003\u3057\u307e\u3057\u3087\u3046\u3001 &hellip; <a href=\"http:\/\/www.moonmile.net\/blog\/archives\/11878\">\u7d9a\u304d\u3092\u8aad\u3080 <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[3,39],"tags":[],"class_list":["post-11878","post","type-post","status-publish","format-standard","hentry","category-dev","category-39"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/posts\/11878","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/comments?post=11878"}],"version-history":[{"count":3,"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/posts\/11878\/revisions"}],"predecessor-version":[{"id":11887,"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/posts\/11878\/revisions\/11887"}],"wp:attachment":[{"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/media?parent=11878"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/categories?post=11878"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/tags?post=11878"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}