菜譜分享網(wǎng)站微信小程序開(kāi)發(fā)說(shuō)明(2)-數(shù)據(jù)庫(kù)

菜譜分享網(wǎng)站微信小程序開(kāi)發(fā)說(shuō)明(2)-數(shù)據(jù)庫(kù)

數(shù)據(jù)庫(kù)選擇使用的是MySQL,數(shù)據(jù)庫(kù)的名稱是gourmet,字符集:utf8mb4,排序規(guī)則:utf8mb4_general_ci

image-20201008191326317

數(shù)據(jù)庫(kù)一共6張表:

  • 菜譜主表
  • 用料表
  • 菜譜瀏覽記錄表
  • 分類表(兩級(jí)或三級(jí)分類)
  • 用戶表
  • 用戶收藏表

用戶表(gourmet_user)

字段名 類型 備注
id int 主鍵,自增
nick_name varchar 用戶昵稱
CREATE TABLE `gourmet_user` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主鍵,自增',
  `nick_name` varchar(255) COLLATE utf8mb4_general_ci NOT NULL COMMENT '用戶昵稱',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

淦,這個(gè)表其實(shí)沒(méi)用上??

菜譜主表(gourmet_menu)

字段名 類型 備注
id int 主鍵,自增
img varchar 菜譜圖片url
title varchar 菜譜標(biāo)題
introd varchar 菜譜簡(jiǎn)介
content text 菜譜內(nèi)容(html)
nickname varchar 作者昵稱
recommend tinyint 是否是推薦(首頁(yè)輪播圖)
CREATE TABLE `gourmet_menu` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主鍵,自增',
  `img` varchar(255) COLLATE utf8mb4_general_ci NOT NULL COMMENT '菜譜圖片url',
  `title` varchar(255) COLLATE utf8mb4_general_ci NOT NULL COMMENT '菜譜標(biāo)題',
  `introd` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '菜譜簡(jiǎn)介',
  `content` text COLLATE utf8mb4_general_ci NOT NULL COMMENT '菜譜內(nèi)容(html)',
  `nickname` varchar(255) COLLATE utf8mb4_general_ci NOT NULL COMMENT '作者昵稱',
  `recommend` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '是否是推薦(首頁(yè)輪播圖)',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

這里的nickname使用的是用戶昵稱,主要是為了簡(jiǎn)單,假定認(rèn)為用戶昵稱是不能重復(fù)的,但顯然是不正確的。這造成了上面的用戶表沒(méi)有必要使用,如果僅僅是課設(shè),沒(méi)有必要修改,但是如果有需要,請(qǐng)從數(shù)據(jù)庫(kù)動(dòng)手開(kāi)始修改?。?!

用料表(gourmet_materials)

字段名 類型 備注
id int 主鍵,自增
menu_id int 外鍵(菜譜主表的id)
name varchar 材料名稱
quantity varchar 用量
CREATE TABLE `gourmet_materials` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主鍵,自增',
  `menu_id` int(11) unsigned NOT NULL COMMENT '外鍵(菜譜主表的id)',
  `name` varchar(255) COLLATE utf8mb4_general_ci NOT NULL COMMENT '材料名稱',
  `quantity` varchar(255) COLLATE utf8mb4_general_ci NOT NULL COMMENT '用量',
  PRIMARY KEY (`id`),
  KEY `fk_menu_materials` (`menu_id`),
  CONSTRAINT `fk_menu_materials` FOREIGN KEY (`menu_id`) REFERENCES `gourmet_menu` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=30 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

菜譜瀏覽記錄表(gourmet_menu_scan)

字段名 類型 備注
id int 主鍵,自增
menu_id int 外鍵(菜譜主表的id)
pageviews int 瀏覽量
favorites int 收藏量
CREATE TABLE `gourmet_menu_scan` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主鍵,自增',
  `menu_id` int(10) unsigned NOT NULL COMMENT '外鍵(菜譜主表的id)',
  `pageviews` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '瀏覽量',
  `favorites` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '收藏量',
  PRIMARY KEY (`id`),
  KEY `fk_menu_scan` (`menu_id`),
  CONSTRAINT `fk_menu_scan` FOREIGN KEY (`menu_id`) REFERENCES `gourmet_menu` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

分類表(gourmet_classify)

字段名 類型 備注
id int 主鍵,自增
name varchar 分類名稱
parent_id int 父級(jí)分類id
CREATE TABLE `gourmet_classify` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主鍵,自增',
  `name` varchar(255) COLLATE utf8mb4_general_ci NOT NULL COMMENT '分類名稱',
  `parent_id` int(10) unsigned DEFAULT '0' COMMENT '父級(jí)分類id',
  PRIMARY KEY (`id`),
  KEY `fore_parentid` (`parent_id`)
) ENGINE=InnoDB AUTO_INCREMENT=41 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

用戶收藏表(gourmet_star)

字段名 類型 備注
user_id int 雙主鍵,用戶表外鍵,用戶表id
menu_id int 雙主鍵,菜譜表外鍵,菜譜表id
CREATE TABLE `gourmet_star` (
  `nick_name` varchar(255) COLLATE utf8mb4_general_ci NOT NULL COMMENT '雙主鍵,用戶表外鍵,用戶表用戶昵稱',
  `menu_id` int(10) unsigned NOT NULL COMMENT '雙主鍵,菜譜表外鍵,菜譜表id',
  PRIMARY KEY (`nick_name`,`menu_id`) USING BTREE,
  KEY `fk_menu_star` (`menu_id`),
  CONSTRAINT `fk_menu_star` FOREIGN KEY (`menu_id`) REFERENCES `gourmet_menu` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容