日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满av-国产精品中文字幕免费观看-亚洲成人久久一区二区三区-国内少妇偷人精品视频无缓冲-一区二区国产精品日本一区二区三区在线网

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運營的一線實戰(zhàn)洞察。

醫(yī)藥信息管理系統(tǒng)數(shù)據(jù)庫設(shè)計:從E-R圖到事務(wù)扣庫存的完整實戰(zhàn)

醫(yī)藥信息管理系統(tǒng)數(shù)據(jù)庫設(shè)計:從E-R圖到事務(wù)扣庫存的完整實戰(zhàn) 簡介面向數(shù)據(jù)庫課程設(shè)計或醫(yī)藥行業(yè)信息化入門學習者的完整項目資料包主題為醫(yī)藥信息管理系統(tǒng)。系統(tǒng)圍繞基本信息、進貨、庫房、銷售與財務(wù)統(tǒng)計五大模塊展開覆蓋藥品/員工/客戶/供應(yīng)商維護、入庫盤點、銷售退貨和日/月報表等典型業(yè)務(wù)適合用 MySQL 完成課程設(shè)計或理解 Java Web 項目結(jié)構(gòu)。壓縮包共 335 個文件、約 4.05MB以 54 個 Java 源碼文件、38 個 HTML 頁面、44 個 JS 腳本和 12 個 CSS 樣式為主并含 SQL 數(shù)據(jù)庫腳本、Maven 配置及說明文檔150 個 GIF 動圖可輔助查看界面效果與操作流程。已有 71 人學習。通過該項目可借鑒模塊劃分、數(shù)據(jù)庫表設(shè)計、前后端組織方式和 Maven 工程搭建思路進而快速改造為符合自身選題的課設(shè)作品。1. 數(shù)據(jù)庫課設(shè)醫(yī)藥信息管理系統(tǒng)先想清楚這三點再開寫已經(jīng)把選題盯在醫(yī)藥信息管理系統(tǒng)上的人多半是因為它業(yè)務(wù)貼近生活有藥、有供應(yīng)商、有入庫出庫、有銷售和處方字段多但是不抽象做出來能演示的頁面也多。但真的動手后你會發(fā)現(xiàn)90%的課設(shè)翻車案例不是不會寫增刪改查而是把表設(shè)計成了“藥品表一張、銷售表一張”的玩具結(jié)構(gòu)答辯時老師問一句“一張?zhí)幏嚼锇鄠€藥品怎么查”就卡住。這個課設(shè)的核心考點從來不是界面上有多少個按鈕而是三件事進銷存的庫存怎么在不丟流水的前提下扣減、處方明細和主單怎么用外鍵關(guān)聯(lián)、以及多人同時開單時怎么保證庫存不為負。這篇筆記會按我踩過的坑來拆解整套方案適合正在做數(shù)據(jù)庫課設(shè)、以及準備把它當作品集項目去優(yōu)化的同學。先從業(yè)務(wù)模型說起因為表結(jié)構(gòu)錯了后面所有代碼都是在給錯誤打補丁。2. 從業(yè)務(wù)到E-R圖把醫(yī)藥庫存、供應(yīng)商和處方單拆成能交差的模型圖2.1 醫(yī)藥信息管理系統(tǒng)的核心業(yè)務(wù)閉環(huán)任何進銷存系統(tǒng)都繞不開“采購、入庫、建檔、在庫、出庫、銷售”這條線。醫(yī)藥信息管理系統(tǒng)比普通商品管理特殊在兩點藥品有“批準文號”和“有效期”出庫的時候必須先進先出不能把快過期的藥壓在庫底銷售環(huán)節(jié)涉及處方一張?zhí)幏娇梢蚤_多種藥品還要記錄醫(yī)生、藥房和數(shù)量。所以你在課設(shè)里至少要覆蓋下面這個閉環(huán)藥品錄入基礎(chǔ)檔案 → 供應(yīng)商供貨生成入庫單 → 入庫單明細增加庫存 → 銷售/處方開單 → 扣減庫存 → 生成銷售流水。任何一個環(huán)節(jié)斷了比如入庫時只改了庫存表而沒寫入庫明細或者銷售時只寫了銷售單而沒扣庫存后面的統(tǒng)計就會對不上。建模的第一件事不是打開工具畫圖而是把業(yè)務(wù)規(guī)則列成清單。我習慣先寫出來“藥品必須屬于某個分類”“同一供應(yīng)商可以供應(yīng)多種藥品”“一張入庫單包含多條入庫明細每個明細對應(yīng)一種藥品和一個庫存變動”“一張銷售單包含多條明細每條明細對應(yīng)一種藥品和銷售數(shù)量”“不允許銷售庫存為0的藥品”。這些規(guī)則直接決定了實體和關(guān)系也決定了外鍵加在哪里。數(shù)據(jù)庫增刪改查只是最后一步業(yè)務(wù)邊界定了表結(jié)構(gòu)就自然出來了。2.2 從業(yè)務(wù)規(guī)則反推實體與關(guān)系先定主鍵和外鍵按上述規(guī)則實體可以拆成藥品信息、藥品分類、供應(yīng)商、入庫單、入庫單明細、銷售單處方、銷售單明細、用戶。其中“銷售單”在醫(yī)藥場景里通常就是“處方”可以復(fù)用一張表增加字段區(qū)分是柜臺銷售還是處方銷售。主鍵的選擇遵守一個原則能用業(yè)務(wù)編號就用業(yè)務(wù)編號但業(yè)務(wù)編號不穩(wěn)定時就用自增ID。比如藥品表的“藥品ID”可以用自增而“批準文號”雖然唯一但不同劑型可能同號不能當主鍵。入庫單、銷售單建議用單號字段作為邏輯主鍵同時再加一個自增內(nèi)部ID原因后面在避坑章節(jié)細說。外鍵關(guān)系要畫成四條主線。一是“藥品分類”和“藥品”之間是一對多分類ID是藥品表的外鍵二是“供應(yīng)商”和“入庫單”之間是一對多供應(yīng)商ID是入庫單外鍵三是“入庫單”和“入庫單明細”是一對多入庫單ID是明細表外鍵四是“銷售單”和“銷售單明細”是一對多銷售單ID是明細表外鍵。藥品和供應(yīng)商之間不直接給外鍵而是通過入庫單明細建立的“多對多”關(guān)聯(lián)。這樣設(shè)計的好處是你以后想查“哪個供應(yīng)商是某種藥的主要來源”時只要對入庫明細做GROUP BY不需要用逗號拼接多值字段。2.3 從業(yè)務(wù)規(guī)則反推E-R圖的畫法要點E-R圖在課設(shè)報告里占比很高但很多人畫成了“一堆表連一堆表”這沒有把關(guān)系表達清楚。正確的做法是先畫最重要的關(guān)系在“銷售單明細”實體上畫兩個菱形一邊連“銷售單”一邊連“藥品”中間標注“包含N種”。在“入庫單明細”實體上同樣連“入庫單”和“藥品”。然后單獨抽出一張“用戶”實體與“銷售單”之間畫“審核/開單”的連線。最后才是“供應(yīng)商”和“分類”這類附屬實體從外向里連接到對應(yīng)的主實體。畫E-R圖的技巧是用“實體關(guān)系實體”的三元組去自檢從銷售單出發(fā)經(jīng)過“包含關(guān)系”到銷售單明細再到藥品這叫“主表-明細-基礎(chǔ)檔案”是關(guān)系模式里最普遍也最容易考的一對多結(jié)構(gòu)。老師很喜歡問“為什么不把明細直接塞進銷售單表”答案是因為一張?zhí)幏娇梢詫懚鄠€藥塞進去就要用重復(fù)字段或者逗號分隔既違反第一范式也查不了“某種藥賣了多少錢”這種聚合SQL。把這句話寫進課設(shè)報告分數(shù)基本穩(wěn)了。2.4 范式級別的取舍第三范式夠用反范式看場景教科書讓你規(guī)范到第三范式但實際設(shè)計里我會給自己留兩個后門。第一個是“庫存數(shù)量”字段。嚴格說庫存可以由“入庫明細合計 - 銷售明細合計”推導(dǎo)出來屬于冗余不滿足第二范式。但課設(shè)階段如果每查一次庫存都要匯總一次明細表數(shù)據(jù)量一大就慢所以我保留“藥品表.庫存數(shù)量”字段同時用事務(wù)保證每次入庫和銷售都同步更新它。這個冗余在答辯現(xiàn)場反而能展開講“用空間換查詢時間”屬于主動反范式。第二個后門是“藥品分類”在藥品表里存了個分類名稱的冗余字段。理論上應(yīng)該只存分類ID通過JOIN去查名稱但為了方便頁面表格展示和減少JOIN次數(shù)我在藥品表里冗余了“分類名稱”。代價是分類改名時要做同步更新這在課設(shè)場景基本不發(fā)生。其余所有表嚴格按第三范式來沒有重復(fù)字段組所有包含非主屬性的字段都依賴主鍵而且依賴的是完整主鍵而不是部分依賴。中間張表“入庫單明細”用的聯(lián)合主鍵入庫單ID藥品ID注意明細里不能出現(xiàn)貨物的“倉庫位置”這種只依賴入庫單的字段否則就是部分依賴需要拆出去。3. 建庫建表與基礎(chǔ)數(shù)據(jù)一套可直接跑的MySQL腳本3.1 建庫與字符集選擇utf8mb4和InnoDB是默認答案寫腳本第一步是先定字符集和存儲引擎。字符集我固定用utf8mb4不要用utf8因為utf8在MySQL里最多存3字節(jié)遇到生僻藥品名或特殊符號會出現(xiàn)亂碼。排序規(guī)則用utf8mb4_unicode_ci它對中文搜索比較友好。存儲引擎選InnoDB這是為了保證事務(wù)、外鍵約束和行級鎖可用。MyISAM雖然查詢快一點但不支持事務(wù)和外鍵在這個項目里沒有任何優(yōu)勢。數(shù)據(jù)庫創(chuàng)建語句如下CREATE DATABASE IF NOT EXISTS pharma_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; USE pharma_db;這里有兩個容易被忽略的點。一是“IF NOT EXISTS”在課設(shè)里很實用重新跑腳本不會報錯二是COLLATE如果不下發(fā)后續(xù)建表時字段默認排序規(guī)則各不相同做WHERE查詢比較字符串時容易報“Illegal mix of collations”。建議把所有表、字段統(tǒng)一到同一個COLLATE這是血淚經(jīng)驗。3.2 藥品表、供應(yīng)商表、入庫表、銷售表的完整建表語句核心表一共五張再加上兩張輔助表。先建被依賴的基礎(chǔ)表再建主表最后建明細表避免外鍵引用錯誤。下面是藥品表、供應(yīng)商表和用戶表的示例CREATE TABLE drug_category ( category_id INT AUTO_INCREMENT PRIMARY KEY, category_name VARCHAR(50) NOT NULL UNIQUE, remark VARCHAR(200) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_unicode_ci; CREATE TABLE drug ( drug_id INT AUTO_INCREMENT PRIMARY KEY, drug_code VARCHAR(30) NOT NULL UNIQUE COMMENT 藥品編碼, drug_name VARCHAR(100) NOT NULL, category_id INT NOT NULL, specification VARCHAR(50) COMMENT 規(guī)格, unit VARCHAR(20) DEFAULT 盒, purchase_price DECIMAL(10,2) NOT NULL, sale_price DECIMAL(10,2) NOT NULL, stock_quantity INT NOT NULL DEFAULT 0, expire_date DATE NOT NULL, supplier_id INT COMMENT 默認供應(yīng)商, created_at DATETIME DEFAULT CURRENT_TIMESTAMP, CONSTRAINT fk_drug_category FOREIGN KEY (category_id) REFERENCES drug_category(category_id), CONSTRAINT fk_drug_supplier FOREIGN KEY (supplier_id) REFERENCES supplier(supplier_id) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_unicode_ci; CREATE TABLE supplier ( supplier_id INT AUTO_INCREMENT PRIMARY KEY, supplier_code VARCHAR(20) NOT NULL UNIQUE, supplier_name VARCHAR(100) NOT NULL, contact_person VARCHAR(30), phone VARCHAR(20), address VARCHAR(200) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_unicode_ci; CREATE TABLE sys_user ( user_id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL UNIQUE, password_hash VARCHAR(64) NOT NULL, real_name VARCHAR(30), role VARCHAR(20) NOT NULL DEFAULT cashier COMMENT admin/manager/cashier ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_unicode_ci;建表順序很重要先建drug_category再建supplier然后建drug否則drug表外鍵指向的表還不存在。注意drug表里的supplier_id設(shè)為“默認供應(yīng)商”表示一種藥可以對應(yīng)多個供應(yīng)商時默認選擇其中一個真正的供應(yīng)商和藥品的多對多關(guān)系要由入庫單明細來體現(xiàn)。price字段用DECIMAL而不是FLOAT后面避坑章節(jié)會專門解釋。接下來是入庫單和入庫明細。主表記錄這次進貨的整體信息明細表記錄每一種藥品進了多少、單價多少CREATE TABLE stock_in ( stock_in_id INT AUTO_INCREMENT PRIMARY KEY, stock_in_no VARCHAR(30) NOT NULL UNIQUE, supplier_id INT NOT NULL, operator_id INT NOT NULL, stock_in_date DATETIME NOT NULL, total_amount DECIMAL(12,2) NOT NULL, remark VARCHAR(200), CONSTRAINT fk_in_supplier FOREIGN KEY (supplier_id) REFERENCES supplier(supplier_id), CONSTRAINT fk_in_operator FOREIGN KEY (operator_id) REFERENCES sys_user(user_id) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_unicode_ci; CREATE TABLE stock_in_detail ( stock_in_id INT NOT NULL, drug_id INT NOT NULL, quantity INT NOT NULL, cost_price DECIMAL(10,2) NOT NULL, production_date DATE, expire_date DATE, PRIMARY KEY (stock_in_id, drug_id), CONSTRAINT fk_detail_in FOREIGN KEY (stock_in_id) REFERENCES stock_in(stock_in_id), CONSTRAINT fk_detail_drug FOREIGN KEY (drug_id) REFERENCES drug(drug_id) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_unicode_ci;銷售單和銷售明細與入庫結(jié)構(gòu)類似但多了一個“處方醫(yī)生”和“客戶姓名”的字段用來貼近醫(yī)藥管理場景CREATE TABLE sale_order ( sale_id INT AUTO_INCREMENT PRIMARY KEY, sale_no VARCHAR(30) NOT NULL UNIQUE, customer_name VARCHAR(50), doctor_name VARCHAR(30), cashier_id INT NOT NULL, sale_date DATETIME NOT NULL, total_amount DECIMAL(12,2) NOT NULL, status VARCHAR(20) DEFAULT completed, CONSTRAINT fk_sale_cashier FOREIGN KEY (cashier_id) REFERENCES sys_user(user_id) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_unicode_ci; CREATE TABLE sale_order_detail ( sale_id INT NOT NULL, drug_id INT NOT NULL, quantity INT NOT NULL, price DECIMAL(10,2) NOT NULL, amount DECIMAL(12,2) NOT NULL, PRIMARY KEY (sale_id, drug_id), CONSTRAINT fk_detail_sale FOREIGN KEY (sale_id) REFERENCES sale_order(sale_id), CONSTRAINT fk_detail_sale_drug FOREIGN KEY (drug_id) REFERENCES drug(drug_id) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_unicode_ci;銷售明細表里的price字段保存的是“成交時賣的單價”不要直接去關(guān)聯(lián)藥品表的sale_price因為以后藥品調(diào)價了歷史銷售記錄還要保留當時的金額。這個字段叫“快照字段”在庫存類系統(tǒng)里非常常見。入庫明細里的cost_price同理也必須是入庫那一刻的實際成本價。3.3 約束設(shè)計主鍵、外鍵、CHECK與默認值怎么配合主鍵設(shè)計上所有自增主鍵都用INT如果覺得數(shù)據(jù)量會很大可以換成BIGINT但課設(shè)階段沒必要。唯一鍵用在業(yè)務(wù)單號上比如stock_in_no、sale_no用UNIQUE約束確保不會重復(fù)生成。外鍵約束必須有這是課設(shè)評分能直觀看到的數(shù)據(jù)庫知識點但不要在明細表上對明細記錄建“無用的級聯(lián)刪除”。正確的是主單刪除時明細應(yīng)該同時刪除所以外鍵用ON DELETE CASCADE藥品和分類之間分類不能刪要限制所以用ON DELETE RESTRICT。CHECK約束很多同學會寫比如庫存不能為負、價格大于0但MySQL 8.0.16之前的版本不強制執(zhí)行CHECK只能在應(yīng)用層校驗。我在建表腳本里仍然寫CHECK因為報告里可以寫“數(shù)據(jù)庫層面也有約束”同時應(yīng)用層再攔一道。默認值盡量給全創(chuàng)建時間用DEFAULT CURRENT_TIMESTAMP銷售狀態(tài)用DEFAULT completed數(shù)量用DEFAULT 0。這樣INSERT語句可以少寫很多字段而且不會因為漏填導(dǎo)致空指針。3.4 初始化數(shù)據(jù)與視圖讓演示狀態(tài)更合理建完表還要造一批演示數(shù)據(jù)不能用網(wǎng)上的“學生表”隨便填。我一般造5個藥品分類、20個藥品、5個供應(yīng)商、3個用戶再造3張入庫單和若干銷售單。一個重要技巧是讓部分藥品庫存低于“預(yù)警線”比如10盒部分藥品的過期時間在3個月內(nèi)這樣后面的“有效期預(yù)警”和“庫存不足查詢”視圖就有數(shù)據(jù)可演示。INSERT語句我就不全貼了給個示例INSERT INTO drug_category (category_name) VALUES (心腦血管類), (消化系統(tǒng)類), (呼吸系統(tǒng)類); INSERT INTO supplier (supplier_code, supplier_name) VALUES (SP001, 華東醫(yī)藥), (SP002, 華北制藥); INSERT INTO sys_user (username, password_hash, real_name, role) VALUES (admin, hashed_value, 管理員, admin), (cashier01, hashed_value, 張收銀, cashier); INSERT INTO drug (drug_code, drug_name, category_id, unit, purchase_price, sale_price, stock_quantity, expire_date) VALUES (DRUG001, 阿司匹林腸溶片, 1, 盒, 8.50, 15.00, 100, 2026-05-30), (DRUG002, 奧美拉唑膠囊, 2, 盒, 12.00, 20.00, 8, 2026-01-15);這里故意把奧美拉唑的庫存設(shè)為8低于預(yù)警線演示時直接跑查詢就能出效果。視圖建議建兩個一個是“庫存預(yù)警_含分類名”一個是“銷售統(tǒng)計_按日按月”。視圖的好處是答辯時不用現(xiàn)場敲很長的SQL讓評委看視圖定義更直觀CREATE VIEW low_stock_view AS SELECT d.drug_id, d.drug_name, d.stock_quantity, d.expire_date FROM drug d WHERE d.stock_quantity 10 OR d.expire_date DATE_ADD(CURDATE(), INTERVAL 90 DAY);4. 核心業(yè)務(wù)SQL寫法增刪改查之外的加分項4.1 庫存扣減與流水記錄一個銷售事務(wù)怎么寫醫(yī)藥信息管理系統(tǒng)的核心不是“藥品增刪改查”而是“銷售完成后銷售單、明細、庫存、臺賬要同時更新”。建議把這個過程寫成一個存儲過程或者事務(wù)模板答辯時展示數(shù)據(jù)庫并發(fā)鎖和事務(wù)的一致性控制。下面是我常用的銷售開單事務(wù)寫法START TRANSACTION; -- 1. 插入銷售主單 INSERT INTO sale_order (sale_no, customer_name, doctor_name, cashier_id, sale_date, total_amount) VALUES (SO20250601001, 張三, 王醫(yī)生, 2, NOW(), 0); SET sale_id LAST_INSERT_ID(); -- 2. 插入銷售明細同時計算總金額 INSERT INTO sale_order_detail (sale_id, drug_id, quantity, price, amount) SELECT sale_id, d.drug_id, 2, d.sale_price, d.sale_price * 2 FROM drug d WHERE d.drug_code DRUG001; -- 3. 更新藥品庫存并且強制要求庫存不能為負 UPDATE drug SET stock_quantity stock_quantity - 2 WHERE drug_id 1 AND stock_quantity 2; -- 4. 檢查是否有行被更新如果沒有表示庫存不足 SELECT ROW_COUNT() AS affected_rows; -- 5. 如果affected_rows為0則回滾 -- 注意在存儲過程中可以用IF判斷這里僅演示SQL順序 COMMIT;這個事務(wù)的寫法和純增刪改查的區(qū)別在第三步UPDATE語句里帶了AND stock_quantity 2這在MySQL里是“條件更新”相當于數(shù)據(jù)庫層幫你做了一次庫存校驗。執(zhí)行UPDATE后如果影響行數(shù)為0說明庫存不夠就應(yīng)該回滾。更規(guī)范的寫法是用SELECT ... FOR UPDATE給藥品行加鎖再判斷庫存量但因為課設(shè)單機環(huán)境下并發(fā)不高用條件更新已經(jīng)足夠。這種寫法能避免“庫存被扣成負數(shù)”的經(jīng)典錯誤。4.2 藥品有效期預(yù)警和庫存下限查詢用視圖與條件查詢實現(xiàn)預(yù)警功能很出效果而且只要一條SQL。除了前面建的低庫存視圖還需要按有效期排序的查詢。MySQL的DATEDIFF函數(shù)可以直接算出過期距離天數(shù)SELECT drug_name, expire_date, DATEDIFF(expire_date, CURDATE()) AS remain_days FROM drug WHERE DATEDIFF(expire_date, CURDATE()) 90 ORDER BY remain_days ASC;這條查詢放在“庫存管理”頁面按照剩余天數(shù)從少到多排序就是很直觀的效期提醒。如果你想升級成“每批藥品獨立效期管理”就要在入庫明細里增加生產(chǎn)日期和效期字段出庫時按照“先入先出”的原則選擇最早批次的庫存。課設(shè)里掛在藥品表上的expire_date一個字段就夠演示但你在報告里如果能寫清楚“藥品表上的效期是最新批次的效期更嚴格的做法是把效期放明細”老師會覺得你想過這個問題。4.3 存儲過程與觸發(fā)器課程設(shè)計的加分項很多學校的數(shù)據(jù)庫課設(shè)評分點里有“存儲過程”和“觸發(fā)器”這兩個數(shù)據(jù)庫對象。存儲過程建議封裝兩個一個是“藥品采購入庫”在insert入庫單和明細后循環(huán)更新藥品的庫存和最近入庫價另一個是“按時間范圍統(tǒng)計銷售排名”用GROUP BY生成報表。下面是一個簡單入庫存儲過程的模板DELIMITER $$ CREATE PROCEDURE sp_stock_in( IN p_supplier_id INT, IN p_operator_id INT, IN p_drug_code VARCHAR(30), IN p_quantity INT, IN p_cost_price DECIMAL(10,2) ) BEGIN DECLARE v_drug_id INT; DECLARE v_stock_in_id INT; SELECT drug_id INTO v_drug_id FROM drug WHERE drug_code p_drug_code; INSERT INTO stock_in (stock_in_no, supplier_id, operator_id, stock_in_date, total_amount) VALUES (CONCAT(SI, DATE_FORMAT(NOW(), %Y%m%d%H%i%s)), p_supplier_id, p_operator_id, NOW(), p_quantity * p_cost_price); SET v_stock_in_id LAST_INSERT_ID(); INSERT INTO stock_in_detail (stock_in_id, drug_id, quantity, cost_price, expire_date) VALUES (v_stock_in_id, v_drug_id, p_quantity, p_cost_price, DATE_ADD(NOW(), INTERVAL 2 YEAR)); UPDATE drug SET stock_quantity stock_quantity p_quantity, purchase_price p_cost_price WHERE drug_id v_drug_id; END$$ DELIMITER ;注意DELIMITER的使用在命令行和Navicat里存儲過程體中多個分號會被MySQL當成語句結(jié)束DELIMITER $$就是為了臨時把終止符改成$$避免過程體內(nèi)插值報錯。參數(shù)名前面的p_后綴是為了避免和列名沖突這算是個小習慣。觸發(fā)器可以作為“庫存不足自動提醒”的補充。比如在銷售明細表上做一個AFTER INSERT觸發(fā)器自動更新藥品表的庫存觸發(fā)器代碼不長但它會隱藏業(yè)務(wù)邏輯讓日后排錯變難。我的建議是課設(shè)里寫一個觸發(fā)器證明你會用就行核心業(yè)務(wù)邏輯放存儲過程或應(yīng)用層不要把大量規(guī)則都壓進觸發(fā)器。觸發(fā)器一旦出錯SQL很難調(diào)試而且觸發(fā)器里的SELECT不能往臨時表以外的地方返回結(jié)果容易被繞暈。4.4 權(quán)限控制不同角色看到不同的菜單和記錄數(shù)據(jù)庫層的權(quán)限控制要做到基于角色的訪問控制。我的做法是在sys_user表里加role字段應(yīng)用層根據(jù)角色選擇查詢語句。比如管理員可以看到所有用戶的銷售記錄收銀員只能看到自己的。SQL層面可以用WHERE條件拼角色入?yún)?- 應(yīng)用層傳遞當前用戶的 role 和 user_id SELECT so.sale_no, so.sale_date, so.total_amount, u.real_name AS cashier FROM sale_order so JOIN sys_user u ON so.cashier_id u.user_id WHERE ( role admin OR so.cashier_id user_id ) ORDER BY so.sale_date DESC;這個SP里用變量role和user_id表示從應(yīng)用層傳入的會話變量。數(shù)據(jù)庫課上講視圖時也可以給一個“我的銷售記錄”視圖視圖定義里帶上DATABASE用戶函數(shù)但MySQL里做行級安全不太方便所以我在視圖和存儲過程之間選擇了存儲過程作為主力。數(shù)據(jù)庫連接池場景下每個請求建立連接后要執(zhí)行SET role ?才能保證不同人的數(shù)據(jù)隔離。5. 課設(shè)避坑數(shù)據(jù)庫設(shè)計階段的五個高頻問題5.1 藥品和供應(yīng)商關(guān)系做成單表導(dǎo)致供應(yīng)商覆蓋現(xiàn)象藥品表里有一個supplier_name字段一次給同一個藥品維護了兩個供應(yīng)商后來發(fā)現(xiàn)只能存一個另一個被覆蓋了。原因把多對多關(guān)系硬塞進基礎(chǔ)檔案表藥品表根本沒法表達“同一藥品由多個供應(yīng)商供貨”。解決拆中間表或依賴入庫明細表讓每次進貨同時記錄“供應(yīng)商藥品批次”這樣既能查某個藥品的歷史供應(yīng)商又能在報表里按供應(yīng)商聚合采購金額。課設(shè)報告里明確寫出“供應(yīng)商和藥品是多對多關(guān)系通過入庫單明細表實現(xiàn)”這一句話就能證明你懂數(shù)據(jù)庫關(guān)系。5.2 金額用FLOAT存儲對賬差了幾分錢現(xiàn)象錄入采購金額后列表頁顯示108.60導(dǎo)出的報表卻是108.599999。原因FLOAT和DOUBLE是浮點數(shù)二進制不能精確表示十進制小數(shù)拿來做金額會產(chǎn)生舍入誤差。解決所有金額字段一律改成DECIMAL(10,2)或DECIMAL(12,2)。DECIMAL是按數(shù)字存儲的加減乘除都精確。這個坑在醫(yī)藥系統(tǒng)里很致命因為進銷存對賬差一分都會引起麻煩。如果已經(jīng)建錯了表可以用ALTER TABLE來改字段類型但要暴露給所有相關(guān)表和存儲過程。5.3 銷售后沒有流水記錄庫存和報表對不上現(xiàn)象演示時先做一筆銷售然后打開庫存查詢發(fā)現(xiàn)庫存沒變。原因只往sale_order表插了一條記錄沒有同步更新drug表的stock_quantity也沒有在sale_order_detail里記錄明細。解決把銷售流程收斂到同一個事務(wù)里或者在應(yīng)用層用一個Service方法把“插入主表”“插入明細”“更新庫存”三步包在Transactional里。數(shù)據(jù)庫課設(shè)推薦用存儲過程因為課堂環(huán)境里前端語言可能沒法演示事務(wù)存儲過程能直接把事務(wù)行為展示在數(shù)據(jù)庫客戶端。別忘了最后再查一次庫存把扣減后的值顯示在界面上。5.4 外鍵濫用導(dǎo)致插入失敗考場手忙腳亂現(xiàn)象在明細表里插入數(shù)據(jù)時報“Cannot add or update a child row”然后整個銷售流程中斷。原因外鍵約束要求外鍵值必須在主表中存在。常見情況是先在明細分錄里引用了sale_id但sale_order還沒來得及提交自動生成的ID。解決先INSERT主表用LAST_INSERT_ID()拿到新ID再插入明細表。另一個典型錯誤是給“藥品分類”表外鍵加了ON DELETE CASCADE導(dǎo)致刪除一個分類時把所有藥品全刪了。分類屬于“被引用數(shù)據(jù)”應(yīng)該用RESTRICT禁止級聯(lián)刪除只有明細表才算“依賴數(shù)據(jù)”才適合用CASCADE。5.5 并發(fā)銷售時庫存變成負數(shù)現(xiàn)象兩個窗口同時賣最后一件藥兩個窗口都顯示庫存為1也都扣減成功最后庫存變成-1。原因先查庫存再更新庫存是“非原子操作”兩個會話在“查詢”階段讀到相同值后面各自做了減一導(dǎo)致數(shù)據(jù)庫并發(fā)鎖沒有真正保住庫存。解決把“判斷庫存大于0”和“扣減庫存”合并到一條UPDATE語句里也就是前面寫的UPDATE ... WHERE stock_quantity n。InnoDB默認行級鎖這條UPDATE會鎖住該藥品行第二個會話必須等第一個提交或回滾才能繼續(xù)這樣就避免了負庫存。如果有意演示悲觀鎖可以用SELECT stock_quantity FROM drug WHERE drug_id ? FOR UPDATE但注意事務(wù)結(jié)束后要立即提交否則鎖會一直占著這就是數(shù)據(jù)庫死鎖的高發(fā)場景。6. 把數(shù)據(jù)量做大用索引和執(zhí)行計劃給系統(tǒng)加分課設(shè)答辯到后期老師通常會問“如果這張表有幾十萬條記錄你的查詢還會快嗎”。這個問題別空談索引直接在MySQL里做一做往sale_order_detail表里用存儲過程灌入10萬條模擬數(shù)據(jù)再跑兩條等價的統(tǒng)計SQL對比執(zhí)行計劃里的掃描行數(shù)。我給一個可跑的模擬數(shù)據(jù)生成腳本DROP PROCEDURE IF EXISTS sp_generate_sale_data; DELIMITER $$ CREATE PROCEDURE sp_generate_sale_data(IN p_loop_count INT) BEGIN DECLARE i INT DEFAULT 0; DECLARE v_sale_id INT; SET AUTOCOMMIT0; WHILE i p_loop_count DO INSERT INTO sale_order (sale_no, customer_name, cashier_id, sale_date, total_amount) VALUES (CONCAT(BIG, DATE_FORMAT(NOW(), %Y%m%d%H%i%s), LPAD(i, 6, 0)), 批量客戶, 1, NOW(), 0); SET v_sale_id LAST_INSERT_ID(); INSERT INTO sale_order_detail (sale_id, drug_id, quantity, price, amount) VALUES (v_sale_id, FLOOR(1 RAND() * 20), FLOOR(1 RAND() * 5), 10.00, 0); SET i i 1; END WHILE; COMMIT; END$$ DELIMITER ; CALL sp_generate_sale_data(100000);跑完后再執(zhí)行EXPLAINEXPLAIN SELECT so.sale_date, so.total_amount FROM sale_order so WHERE so.sale_date BETWEEN 2025-01-01 AND 2025-12-31;在沒有索引時type列通常是ALL行數(shù)是全表統(tǒng)計隨后你在sale_date上建立索引再跑一遍EXPLAINtype會變成range。這就是一個很有說服力的現(xiàn)場調(diào)優(yōu)演示。接著做一個更貼近業(yè)務(wù)的口徑統(tǒng)計每一種藥賣了多少錢。SELECT d.drug_name, SUM(sod.amount) AS total_sale_amount FROM sale_order_detail sod JOIN drug d ON sod.drug_id d.drug_id GROUP BY d.drug_id, d.drug_name ORDER BY total_sale_amount DESC LIMIT 10;這條SQL在數(shù)據(jù)量上去以后要保證drug_id是主鍵、sale_order_detail的drug_id上有索引不然JOIN慢。這也是“數(shù)據(jù)庫同步工具”概念里經(jīng)常提到的索引問題如果兩張表關(guān)聯(lián)字段忘了建索引數(shù)據(jù)同步和實時查詢都會卡住。我的個人習慣是給每條核心查詢寫“優(yōu)化前”和“優(yōu)化后”兩版并把EXPLAIN結(jié)果截圖貼進課設(shè)報告。老師其實很清楚學生做的數(shù)據(jù)量不大他更在意你有沒有驗證的意識和排查手段。你只要做一次并不復(fù)雜的索引對比就能和其他交了個增刪改查的課設(shè)拉開差距。最后再說一句實在話數(shù)據(jù)庫課設(shè)的分數(shù)不是靠堆功能堆出來的而是靠表結(jié)構(gòu)合理、事務(wù)不丟數(shù)據(jù)、查詢有據(jù)可查這三個維度撐起來的。醫(yī)藥信息管理系統(tǒng)是個很好的載體把進銷存和中小型業(yè)務(wù)數(shù)據(jù)庫的常見問題都覆蓋了值得你多花兩個晚上把細節(jié)打磨好。希望這篇筆記能幫你在做課設(shè)和答辯的路上少踩幾個坑。本文還有配套的精品資源點擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
人妻精品一区二区在线| 最新三级网址| 香蕉国产97| 欧美一区二区福利在线| 岛国视频免费在线观看| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 亚洲天堂另类小说男人| 日韩无码服务区| 国产精品秘 福利姬在线观看| 亚洲青色欧美| 强奸乱亚洲| 亚洲性爱无码乱伦av| 午夜男人一级A片7777| 日韩99神马视频片| 天天日天天插| 99啪啪| 大香蕉啪啪啪啪在线| 国产精品国产| 五月婷亚洲精品天堂| 欧美一区二区三区另类精品| 青青草天天亲夜夜操网| 1024亚洲中文字幕久在线看片你懂的| 国产美女激情| 蜜臀中文字幕| 日韩性爱电影一区| 天天综合网91入口| 99少妇| 亚洲天堂一区二区久久| 毛片电影一区二区三区| 九九九久久久久| 日韩性色| 欧美精品自慰系列寂寞少妇| 国产精品经典一卡久久久 | 日韩国产十八禁| 欧美日韩不卡传媒| 色香色欲天天综合网天天来吧 | 亚洲国产av中文字幕久久| 91 亚洲情侣偷拍 久久| 欧美日本视频一区| av三级电影在线播放| 亚洲精品白丝| 熟女自慰久久久| 有码人妻系列| 日本成人A片免费看| 亚洲色图 欧美热图 清纯唯美 另类自拍| 无码抄逼网| 黄色小视频日本txt| 日韩91网站| 91欧洲国产成人久久精品网站| 日韩乱中文| 97资源超碰| 国产捆绑一区| 亚洲 综合 第一页| 欧美美女后入| 天天看人人操屄犊摸阴| 亚洲情色中文字幕一区| 色哟哟av| 青娱乐国产精品| 成人天天看站长推荐| 国产在线视视频有精品| 密乳AV免费观看| 亚洲综合色男人网| 亚洲综合在线高清| 欧洲亚洲国产综合在线| 91美女丝袜诱惑视频| wuyechaopeng| 中文字幕一区二区三区四区在线视频| 色五月综合| 99少妇| 尤物黄色在线观看网站| 精品国产一区二区三区四区在线看| 九色婷婷| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 亚洲午夜福利视频| 欧美色另类| 日本三级韩三级99久久| 欧美在线|亚洲| 夜夜操二区| 黑人嘿嘿嘿超爽免费视频| 中日韓欧美高清| 97就爱干| 色综和网| 久久鲁夜| 国精品一区二区三| 激情开心五月天| 日本人人操人人操| 人人做,人人操,人人摸| 精品国产乱码久久久久久久久久毛片| 色老汉色| 97超碰天天爱天天爱| 天天欧美色| 日本精品一区二区中文字幕| 国产在线激情视频| 国产三级在线现体验区| 97九色| 日韩综合色图| 综合97| 9Ⅰ老熟女| 亚洲全色网| 人人操人人色网| 伊人麻豆传媒| 97九色| 韩国免费播放一级毛片| 91久热| 亚洲一区深夜| www.狠狠操| 婷婷五月天成人| 自慰白浆在线观看| 97在线资源| 天天日天天干天天色| 少妇 综合| 性爱AV天堂| 色女99一级片在线观看| 国产操逼网站亚洲一级黄色| 国产免费一区二区在线A片视频| 成人十八禁日韩欧美一二三| 亚洲欧洲日韩中文字幕一区| 欧美日韩一区二区三区四区蜜桃| 中文精品一区二去| 久草电影网| 91中文字幕| 麻豆精品久久久久久久| 99e久久国产精品| 欧洲大香蕉| 亚欧国产无码精品在线| 色欲人妻一区二区在线| 99这里有精品视频| 图片区小说区| 国产美脚女优尤物在线观看| 欧美激情色婷婷花野真衣一区二区| 国产一级高跟丝袜| 亚洲欧美碰碰| 人妻性爱一区二区| 欧洲在线性爱视频| 尤物视频一区| 久久成人午夜狠狠| www.91理论| V A在线| 国产亚洲色停停久久99精品91| 欧美日韩操逼动图| 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | 久久成人午夜狠狠| 久久女人| 蜜臀一区二区三区亚洲最新章节在线观看 - 高清蜜臀一区二区三区亚洲全集播放 | 久久鲁夜| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 亚洲天堂热| 亚欧高清v| 95人妻爽爽人人做人人澡| 久久久久久久久久久久久久9999| 色九九九九久| 亚洲十八禁止| 久久69| 亚瑟国产精品久久无码| 在线国产一区二区av| www.婷婷五月天| 亚洲国产剧情少妇激情| 中文字幕在线第二页| 国产精品第一页国产大屁股视频免费区| 韩日色费| 亚洲偷拍自拍在线视频| 成人热久久精品| 熟妇一区,二区,三区。| 久久精品国产亚洲AV高清演员表| 精品无码一区二区| 蜜臀久久99精品久久久久久| 国产 日韩 欧美 中文 另类,国产 欧美 另类 制服 变态,高清 日韩 欧美 中文,高 | 狠狠欧美| 艳尻美人妻| 国产精品人妻无码久久久互動交流 | 亚洲.欧美.丝袜.中文.综合| 日韩欧美成人大香蕉| 久久久99999久网站| 亚洲诱惑天堂 | 精品国产一区二区久久| 啊啊啊男女| 午夜寂寞欧美| 夫妻天天操岛国视频| 欧美 亚洲精品首页| 91热色| 亚熟hd视频在线| 国产91 丝袜在线播放| 欧美系列在线一区二区| 国产超碰人人爽人人做| 欧美亚洲中文字幕| 久久久久亚洲Aⅴ无码| 黑丝少妇麻豆| 国产97免费视频| 婷婷丁香久久| 欧美色图91p| 久久久精品电影| 亚洲丰满很很操| 日韩成人精品视频自拍| 天天操夜夜操| 青青伊人久久| 亚洲另类欧美精品| 久久九操在线观看| 欧洲色| 久操网址| 久久久久成人蜜桃精品| 天天色欧美| 色呦呦、国产精品| 久久熟女人| 日韩簧片免费看| 超碰免费欧美7| 中国一级操逼视频| 青青欧洲黑| 性爱av网站| 不卡av在线中文字幕| 美女黄页网站| 91oumei| 欧美天天综合网| 欧美强奸乱| 青青草原成人| 97就爱干| 偷拍亚洲高清图片| 久久人妻97久久久久久久| 青娱乐大香蕉| 成人五月天色网| 97精品| 九九亚洲| 天天欧美| 亚洲日韩狠狠撸视频| 国产一区麻豆免费观看| 成年男人的天堂| 色婷婷丁香五月| 国产福利精品最新在线 | 大香焦A片| 欧美亚州综合网图片| 东京热熟女亚洲视频网站| 国产黄a三级三级三级av在线看| av凤凰久久久| a v网站在线播放| 国模无码人体一区二区三| 97亚洲色图| 久久精品噜噜噜成人看免欧美大片| 在线观看啊啊啊啊啊| 91国精产品| 综合久久99亚洲人妻中文在线| 亚洲欧美日韩有码| 午夜精品久久久久| 美女91色黄18| 不卡二三区人妻少妇| 久久久蜜桃臀无码视频| 国产无码成人无码| 91免费看一区二区三区| 色欲三区| 久久久精品无码亚免费| 色情五月婷婷| 欧美天天谢综合网| 九九九草| 精品国产av一区二区三区四区入口| 天天影视91看看| 超碰97日韩| 天天网综合| 亚洲婷婷丁香在线| 美女一区二区国产精品| 综合一区中亚洲国产成人综合精品 | 1204金沙人妻懂旧版免费| 强奸乱亚洲| 丁香六月激情综合| 国产亚洲色婷婷99精品91| 97一本大道亚洲一区| 精品福利| 丝袜美腿欧美| 日日躁天天躁狠狠躁| 操高情无码| 91强在线播放| 亚欧成人综合影院| 欧美日韩国产电影| 欧美91视频| av72网| 九月丁香婷婷色| 97超碰巨乳| 强奸乱伦亚洲第一页| 国产精品视频播放| 黑人白女精品一区| 国产第二页| 精品亚洲国产成人AV制服丝袜| 999 久久久| 久久精品中文字幕无码l| 久久精品视| 欧美中出1| 日韩超碰97| 天天摸夜夜操视频| 大香交伊人网| 日韩卡一卡二卡三在线| 大香蕉强奸乱伦| 欧美综合色站| 岛国黄片网站| 91精品综合久久久久久五月丁香| 久久性爱精品一区| 亚洲精品99999| 久日91在线| 丰满人妻-区二区三区免费看 | 激情人妻另类| 骚货操死你| 欧美99| 亚洲综合一区二区| 91 欧美| 九九这里只有精品| 久久久99免费| 色悠久久久av| 一色网男人的天堂| 色呦呦呦在线观看视频| 97中文字幕一区| 91性生活久久久| 中日高清无码操逼视频| 免费一级黄色录像影片| 91丰满| 欧美极品色| 天天做天天爱天天爽AV| 97精品国产97久久久| 粉嫩av在线一区二区| 欧美五十路熟| 国产成人拍国产亚洲精品| 久久国产精品视频| 国产视频小说| 欧美色图 人妻| 色五天伊人| 日本性交操一区二区不卡系列| 97欧美色综合| 国产后入清纯| 蜜桃视频一区二区三区 | 色网亚洲人| 99re6国产精品99re| 另类视频在线| 北条麻妃性愛视频| 午夜精品久久久久久久99热影院 | 日日夜夜天天| www.婷婷六月天| 激情五月丁香五月| 亚洲色色色| 激情五月天色播| 中文啪啪视频| 亚洲欧美综合网| 高潮毛片无遮挡高清免费| 热久日综合| 91国产精品在线看| 亚洲欧美日韩精品久久久一区二区| 99精品综合久久久久五月天| 99精品热| 亚洲日韩av专区无码| 少妇无码太爽| 欧美日韩在线小说 | 欧美一区二区三区入口| 欧美日韩国产一区二区小黄片大全| 婷婷综合五月天| 亚洲欧洲av影音| 碰人碰碰人人开房人肉| 日韩乱伦AⅤ| 色色色999| 久久精品午夜国产亚洲AV无码| 97精品97久久| 无码不卡八戒| 97视频新免费| 999久久久免费精品国产牛牛| 少妇诱惑视频| 嗯啊啊啊轻点视频| 国产日韩欧美| 思思热一热婷婷热一热| 蜜桃臀av在线观看| 欧美日韩222| 人妻日日干| 亚洲 欧美 另类 日韩 人妻一区 | 亚洲精品九九九| 国产在线视视频有精品| 久久av色| 这里只有精品视频| 久久超碰日韩精品| 男女一进一出视频久久| 久草精品国产蜜臀| 91麻豆天美国产欧美| 97欧美日韩精品| 国产精品毛片?v一区二区三区| a男人的天堂久久一级A毛片| A级毛片在线看免费| 69精品| 天天舔九色婷婷| 嗯~啊~快点 死我视频免费看网站| www.91人妻.com| 午夜亚洲| 欧洲免费一区二| 亚洲在线91| 中出91视频| 亚洲 在线| 麻豆2区1区天美| 日韩久久.一级黄色片| 人妻少妇精品无码专区二区密桃| 精品国产乱码久久| 精品少妇一区二区三区免费观看| 欧美AB在线| 久久亚码| 精品九九九九九九| 久热伊人| 图色综合网| 国产AV线| 午夜天堂网| 91三级理论片播放器| 亚洲欧美精品一区天堂久久 | 天天操天天干一区二区 | 男女国产精品| 久久久草草精品| 情色五月天久久久| 日美免费黄片| 97这里只有精品| 日韩 欧美 国产 麻豆| 怡红院怡春院| 9久久美女首页| 在线观看精品国产免费| 91撸色网 玖玖网 欧美| 嫩草美女久久| 超碰97人人乐| 成人性交午夜免费片| 26uuu偷拍亚洲欧洲综合| 影音先锋国产精品| 中文字幕免费看| 偷看洗澡一二三区美女| 日韩综合色图| 九九人妻| 超碰色综合| 欧美少妇第一页| 中出人妻中文字幕91在线| 欧美日韩第一页| 超碰在线人妻中文字幕| 久热网| 国产一区麻豆免费观看| 黄网在线播放| 色久桃花影院在线观看| 七月婷婷综合| 老熟女阿 国产91| 精品999日本| 国产精品情侣啪啪| a在线观看| 久久高清欧美国产| 一级AV性爱| 清纯唯美亚洲综合| 天躁夜夜躁2021| 另类专区加勒比| 久久精品视| 欧美日韩少妇色情| 日韩精品99999| 超碰av在线| 久久精品国产亚洲AV片多多| 久久伊人亚洲AV无码网站| 国产一级高清免费观看| 国产精品久久久久久久久久久久久久吹 | 97在线看| 天天日天天看| 亚洲国产熟妇综合色专区| 天天综合中文字幕 91| 欧美激情内射| 亚洲97超碰| 久久久精品网站| 国产精品一区二区久久精品| 亚洲性爱电影| 思思性爱| 国产精品一二三免费网站| 台湾佬激情综合| 蜜桃臀 后入 一区 二区 三区 在线| 成人电影一区| 久久综合久久综合人久久夜精品| 裸体1区| 伊人激情五月天一区二区| 色97欧美| 国产性爱欧美性爱在线| 嗯啊不要在线观看嗯啊| V A在线| 五月天激情小说| 日日日大屁股骚女人精品| 男女日B国产| 夜夜嗨AV蜜臀av| 蜜臀久久99精品久久久久久| 人人艹亚洲| 久久精品午夜国产亚洲AV无码| 香蕉综合网| 蜜臀久久久99久久久久 | 色欲三区| 欧美午夜视频| 日韩情色视频| 草草影院日本第一页| 亚洲色图 欧美热图 清纯唯美 另类自拍 | 欧美精品精品一区二区| 乱码熟妇人妻久久久| 久久久草草精品| 色婷婷小说| 好爽视频在线观看视频| 大香蕉中文aV在线| 天天操天天干美女网址导航| 久热久| 97久久国产精品| 午夜男人一级A片7777| 中文字幕一区二区三区四五区| 91 综合网| 亚洲阿v天堂在线| 蜜桃中文字日产乱幕4区| 色97国产69香蕉| 91碰超| 亚洲精品1区| 久久999久| 四虎影视永久在线免费| 日韩福利综合一区| 久99在线免费观看视频| 日韩av不卡在线看| 色眯眯射| 中文字幕精品日韩中文字幕| 亚洲图片第一页| 亚洲开心网| 啊啊啊好舒服视频在线观看| 97高清啪啪| 少妇高潮一区二区三区在线| 久久午夜色播影院免费高清| 午夜亚洲WWW湿好大| 一区二区偷拍拍视频| 性色AV网站| 九九草| 国产97av| 欧美999| 久久伊人最新网址视频| 91欧洲国产成人久久精品网站| 夜夜 中文视频rt| 国产夫妻性生活视频| 日本97久久久精品| julia高潮后不停追击中出| 人人色人人操在线| 无码人妻精品一区二区三区99不卡| 五月天婷婷影院| 日韩免费a级毛片无码a∨| 麻豆天美电影一区二区| 欧美 亚洲 偷拍自拍| 九九九精品美女| 熟女啪啪视频| 岛国网址国产| 亚洲九九九| 超碰97亚洲区| 丰满少妇人妻久久久久久| 在线a v| 五十路熟女人妻一区二区在线观看| 97亚洲资源| 婷婷五月天基地| 综合久久六月久久婷婷| 麻豆久久精品亚洲精品88 | 欧美色图20P| 91黑丝美女| 性欧美另类高清| 欧美极度丰满熟妇hd| 成人无遮挡毛片免费看| 亚洲国产熟妇综合色专区| 尤物视频网 刘玥| 日本黄色裸日本黄色裸体| 国产女人与拘做受视频免费| 亚洲区限制级| 丝袜狠狠草尤物人妻av91| 爽 好舒服 无码刺激久久| 国产传媒操逼视频| 先锋激情∨在线视频播放| 天天躁日日躁狠狠躁| 一本色道人妻久久| 久久久久九九九九九| 日本男人插女人的逼黄色| 少妇蜜汁| 熟女色图在线| 老熟妇综合| 国产熟女精品区| 久久国产精品熟女人妻| 97日视频| 久久亚码| 激情文学小说一区二区 | japan日本高清乱xxxx| 欧美偷拍区| 日本不卡高清视频| 免费看久久久性性| 青青操视频在线| 日日摸日日碰夜夜爽视频| 激情接吻视频久久久久久| 蜜区区视频79 | 欧美亚洲中文字幕| 丝袜美腿91| 丁香五月天堂网| 在线观看视频91| 亚洲中文字幕在现观看| 少妇免费视频| 亚洲综合97| 99视频内射三四| 夜夜爽爽夜夜精品视频| 97久久超碰国产精品| 男女性扦B| 国产9l 大屁股| 国产久久久9999| 男人的午夜天堂| 欧美久久婷| 伊人久久婷婷| 久久女人一区二区三区| 看免费一级在线播放毛片| 少妇大屁屁| 91亚洲黑人| 蜜桃丰满熟妇av无码区不卡| 超碰97国产欧美| 天美传媒精品久久视频| 国产精品在线免费| 午夜久久一区二区无码中出| 亚洲AV在线资源| 久久婷婷亚洲| 久久精品欧美一区二区三区不卡| 88xx成人精品视频| 久久亚洲人妻| 国产精品午夜精品| 日本中文字幕在线电影| 另类图片亚洲加勒比另类图片亚洲加勒比另类图片亚洲加勒比 | 日本Suv精品一区二区| 色在线亚洲视频www| 97欧美日韩中文| 青青草操逼逼视频| 尻女朋友一夜| 四虎在线免费视频| www色色com| 日本操逼视频在线| 女人高潮抽搐喷水视频网站| 91深夜夜| 岛国福利在线精品播放| 国产强奸乱伦xd| 欧美激情综合色综合啪啪五月| 在免费jIzzjIzz在线视频| 东京热男人的天堂网| 亚州综| 精品日韩产品在线,日韩在线不卡视频,欧美日韩免费专区/久, | 天堂av2019| 五月天玖玖资源站| 九X超碰| 99蜜桃臀亚洲成人在线观看| 亚洲玖玖爱| 色综合加勒比| 五月天伊人| 亚洲情色视频| 欧美色图片91| 中文字幕在线免费观看2| 人妻熟妇一区二区三区| 操b网站亚洲无码| 五月婷婷综合网| 亚洲男人天堂Av| 激情四射熟女丝袜| 成人色女网| 九九热av| 污色区网站| 亚洲人体视频在线观看| 婷婷五月天丁香花| 一二三四日本视频高清| 99re3这里只有精品| 丰满人妻无码一区二区三区| 国产农村妇女精品一| 日韩欧美操逼xxx| 国产精品免费日韩| 天天淫人人妻日日色| 极品销魂美女一区二区| 男人的天堂不卡一区二区| 少妇熟女1区2区3区| 日韩熟女视频二区| 欧美日韩情色一区二区| av天堂精品久久| 久久久久久久国产视频| 久久精品熟妇丰满人妻99| 亚洲天堂情色| 天天天肏屄欧美| 男人的天堂不卡一区二区| 亚洲色啪| WWW美腿丝袜香蕉中文| 日本精品人妻少妇一区二区| 欧美在线干| 日本在线不卡v二区| 欧美国产精品| 日韩无码三级影院| 午夜乱轮操逼视频免费看| 久草在线| 超碰免费97| 精品视频一区二区| 精品国产一区探花在线观看| 最近二区三区视频大全| 香蕉99秘 一区精品蜜桃臀| 精品一区二区三区蜜桃| 青青草影视蜜久久| 成人九九| 国产精品久久久久久久久久久久| 国产9熟妇视频网站| 999精品乱码| 国产综合色精品在线观看| 日韩性爱啪啪视频| 午夜操逼不卡| 国产一区二区精品久久99| 逼逼逼逼操操操操操操操操操午夜剧场 | 中欧人妻丝袜中文字幕| 五月色网| 91夜色| 国产高清免费不卡av| 美国日韩黄色片| 色嘟嘟人妻天堂网| 国产午夜视频| 97中文字幕一区| 欧美成人一级麻豆| 亚洲啪啪视频一区二区| 一二三区操逼国产91| 中字乱伦AV| 六月婷婷色综合| 青青青国产手线观看视频2| 日本黄色精品专区网站| 欲综合网| 欧美亚洲综合色| 裸体1区| 第四色奇米影视777| 小骚逼被操的爽不爽| 无码人妻精品一区二区三区99不卡| www.久久| 亚洲人天堂| 婷婷久久五月天| 日产精品久久久一区二区| 久/久精品99看9| 夜夜欧美| 色色热| 成人五月天色网| 婷婷10月天青娱乐| 欧美天堂日韩三级国产传媒| 2020视频1区2区3区| 日韩精品国产精品五码一区二区| 亚洲av综合色区图片亚洲| 无码一区免费在线不卡| 久久超碰网| 久久国产视频性吧| 果冻传媒一区二区三区| 91婷婷| 在线有码中文字幕| 密乳视频在线| 91丨九色丨国产丨人妻在线| 影音先锋少妇| 2020中文在线一区二区三区| 精品一区二区国产日韩| 好爽视频在线观看视频| 国产亚洲99久久精品| 亚洲凸凹超碰成人| 欧美精品99久久久**| 青娱乐大香蕉| 中文字幕三四五区| 国产精品久久久久婷婷二区次| 欧美性Fer办公室秘书| 国产免费一区| 亚州综合在线| 免费综合亚洲中文| 久久一二三四不卡| 日本精品九九九| 啊啊啊啊在线播放| 夜夜躁狠狠躁日日躁av| 日本三级A片网站com| 久久久久九九九| 久久久久国产精品片区无码直播| 在线有码中文字幕| 亚洲各类熟们中文字幕| 成人五月天丁香激情综合| 国内三级自拍小视频在线观看 | 亚洲男人的天堂AV| 亚洲欧美综合| 欧美成人综合| 97综合在线| 日韩免费簧片| 九九九九九九免费视频| 熟妇人妻精品一区二区视频色欲| 波多野结衣之双飞调教在线播放| 加勒比日本在线| 伊人久久婷婷| 亚洲欧美在线观看免费| 78超碰| 亚洲精品人伦一区二区| 人妻激情另类| 欧美性巨大╳╳╳╳╳高跟鞋| 男人精品区| 欧美成人精品一区二区男人蜜臀| 日韩 人妻 精品| 大香蕉乱伦视频网| 亚洲天堂7777| 久久av无码| 欧美日本成人一区二区| 竹菊一区二区三区AV线| 后入式在线免费观看60秒| 6080yy午夜理论三级一区二区三区无码| 精品国产无码中文| 乱伦熟女专区| 电家庭影院午夜69久久夜色精品国产69乱| 欧美一区二区三熟女剧情| 激情综合网一盗摄| 美腿丝袜高跟网免费视频免费视频| 天天操av懂色| 亚洲日韩肥臀视频在线观看| 天天干天天爽| 五月丁香综合网| 久久久无码国精品无码三区三区| 久久久精品无码亚免费| 青娱乐国产精品| 免费a在线播放v| 国产超碰| 伊人成人中文字幕久久网| 色狠狠综合| 国产又粗又又黄又猛| 操狠狠| www.97在线| 日本大香蕉| 青青草玖玖爱| 日韩电影中文字幕| 韩国三级色呦呦| 乱伦熟女专区| 国产精品久久久久久久毛片1| 亚洲一卡2卡3卡4卡乱码网站| 91热爆在线| 国产女上位好爽在线| 自拍欧美| 97久久国产精品| 久久婷婷色| 九九英色视频| 色眯眯av| 亚洲色图亚洲| 国产人妖视频一区在线观看| 韩国一级婬片A片AAAAA| 一区二区高清视频| 人、人、摸,人、人、草| 老熟女综合网 | 99色综合| 五月亭亭六月丁香| 综合91网| 五月婷婷丁香| 久久久久久久久久久免费精品| 激情av| 日韩成人人妻网站| 欧美一区二区三区蜜桃| 欧美人人天天网| 午夜视频好爽啊| 91性感网站| 国产专区第一页| 熟女欧美日韩综合婷婷| 人妻无一区二区三区| 五月婷婷六月丁香网址| 国产情侣自拍在线播放| 麻豆性爱视频在线播放| 亚洲成av人片色午夜乱码| 欧美A√综合网 | 91无码西班牙视频在线| 日操粉逼逼| 婷婷五月天久久精品视频一区二区三区 | 日韩国产欧美伦理在线| 欧美高清18A片| 人人妻天天做天天爽| 东北女人操比视频| 无卡一区=区| 97精品一区| 日本操逼视频在线| 无码国产精品午夜不卡( | 五月开心久久AV官网| 精品久| 99精品无码| 91亚洲综合| 欧美性,色九九| 操逼天美3区| 99re99视频在线免费观看| 黄色电影在线播放综合网站| 青青草精品| 一级片视频啪啪| 男人天堂.AB| 一本色道综合久久欧美| 91国产美女丝袜足交精品视频| 少妇一级无码精品| 伊人久久艹| 九九九草| 高清在线偷拍自拍视频| 婷婷爽人人婷婷爽视频| 久久久草成人网站久久久草成人久久久草久久久 | 校园春色之综合网| 天天综合欧美| 天天操女人| 9国产超碰| 大香蕉琪琪日本女优不卡| 天天色黄色影院天天操| 禁十八久久| 天天摸夜夜添无码小视频| 牛牛久久国产精品视频一二三| 加勒比久久综合网高清| 啊啊啊啊好疼| 5252色欧美在线| 国内毛片国产专区二| 欧美亚洲天天| 亚洲综合性感在线| 天天操人人操狠狠插| 中精品一区二区三区| 麻豆60秒| 国产美女mm131爽爽爽爽| 密臀在线视频| 国产不卡中文字幕免费avi| 欧美成人性爱视频免费观看| 超碰地址久久| 欧美大干日韩| 麻豆国产原创AV色哟哟| 97人人操人人摸人人爱| 东京日日夜夜| 浪人综合网| 又大又大又大又粗爽高潮观看 | 亚洲精品国产熟女| 黄页网站成人免费| 色悠久久久av| 自拍丝袜美腿人妻| www.天天干| 浪人综合网| 欧美传媒| 国产综合色精品在线观看| 欧综合网| 少妇九九九九| 四虎影视永久在线观看精品免费网站| 国精品一区二区三| 91久久久久久久久久久| 人人人人人人少妇| 操逼逼无码| 日韩亚洲中文有码视频| 国产9 9在线 | 亚洲| 国产精品美女| 久久久久久久久久9| 97视频播放| 亚洲一区操| 日人妻视频91| 97精彩视频网站| 99黄页网站| 亚洲精品九九九| 午夜.DJ高清在线观看免费7| 狠狠色狠狠色狠狠五月| 中字乱伦AV| 中文字幕国产精品1区| 久久中出在线| 美欧色综合| 欧美一级美片在线观看免费| 国产家庭乱伦性爱视频| 秋霞视频一区二区| 无码人妻一区二区三区免费九色| 中文字幕亚洲在线一区| 精品视频一区二区| 日韩操逼HD| 亚洲AV无码久久久国产精品| 亚洲日产专区| 亚洲激情天堂网| 亚洲欧洲激情| 国产精品美女| 极品尤物女神在线观看| 蜜臀国产AV中文字幕| 看黑丝美女操逼青青网站| 高清肉丝中文无码| 麻豆尤物视频网| 中文色综合| 婷婷综合| 亭亭在线资源| 日本视频在线中文字幕| 国产AV超爽| 国产农村妇女精品一| 欧美综合综合| 乳欲人妻办公室奶水| 久久久久性熟视频| 欧美大干日韩| 99婷婷一区二区| 九九亚洲| 人人妻天天做天天爽| 人妻色偷色噜| 人妻久久久久久久久久久久久久久| 91精品人妻一区二区三区蜜桃臀| 9I1性色影院| 国产精品婬乱一级毛片彝族| 国产污视频麻豆传媒一区二区| 蜜臀久久99精品久久久久电影| 天天色天天干天天射| 五月婷婷hd| 蜜桃狠狠色伊人亚洲综合网站| 色五月激情网| aV中文麻| 99热亚洲| 亚洲色电影在线| 久久性爱大全| 亚州熟妇精品| 乱伦AVxx| 插B在线观看| av资源在线播放天堂| 欧美精品,四区。五区| 蜜乳AV一区二区三区四| 亚欧美色图| 爽 好舒服 无码刺激久久| 色香网| 欧美日不卡| 日夜伊人网| 日韩av熟女一区二区三区成人| 日本不卡一区二区| 欧美伦乱爱| 插穴性爱视频在线观看| 欧美日韩国产精品久久色婷婷| 亚洲欧美中文日韩视频中国语| 欧美日综合| 亚 欧 美 综合| 日熟女| 色香综合天天影视综合 | 少妇熟女一区二区三区| 四虎884a| 蜜臀精品1区2区| 天美麻花大全视频| 欧美成人一级免费电影| 日韩视频精品在线观看| 992视频一区| 99re在线视频| AV天天综合| 翔田千里av一区二区三区| 成人无码在线超碰网| 超碰欧美| 欧美天天综合| 国产三级片在线观看| 97热视频在线观看| 97超碰色五月| 欧美骚少妇| 五月天久久婷婷亚洲 | 日韩av免费一级电影| 天天影视91看看| 淫骚熟女一区二区三区| 天美国产精品| 国产精品岛国片在线观看| 国产h小视频在线观看免费| 97在线播放| 91色综合色| 日影院久久婷婷夜夜网| 日韩懂色网| 蜜臀久久99精品久久久久久久久| 欧美激情中文字幕另类小说| 男人的天堂午夜av| 无码高清少妇久久| 久热影视| 超碰色男人操熟女| 91视频伊人| 黄片免费视频2019| 国产精品日韩在线一区| 国产精品一区二区a| 超碰免费97| 亚州熟女乱伦| 久久精品国产亚洲AV片多多| 乱欲视频| 精品成人亚洲午夜电影| 最近的最新的中文字幕视频| www…国产操逼| 私色综合网| 午夜精品久久久久久久99热影院| 色欲人妻一区二区在线| 操死我了啊啊啊| 欧美日韩欧美| 人人看人人插| 探花激情视频| 亚洲色欲一区二区三区| 日本新免费二区三区| 色淫网站优优视频| 欧美日韩啪啪电影| 91久久久久久久久18| 免費人妻夜夜爽天天爽爽一区| 久久九精品| 极品白嫩美少妇在地板上位骑射淫水泛滥| 无码高清操逼| 唐山老熟妇露脸啪啪叫| 99999精品视频| 欧美日日人人天天| 欧美亚洲素人制服精品| 国产精品一二三区福利| 久久综合av| 综合久久久久久久久91| www.色婷婷| 日韩精品系列| 久综合国内精品自在自线| 天天爽天天爽| 青青久久久| 先锋色眉乱伦资源| 日本丝袜美腿人妻九九| 成人精品无码| 国产免a费看黄片在线| 亚洲情色1区| 久操精品| 骚货人妻偷情自拍在线视频| 性欧美999| 婷婷综合五月| 91综合网在线| 日韩免费人妻色情网站| 亚洲毛片基地专区| 婷婷国产精品九区| 欧洲久久一二线| 天天弄欧美| 性久久久| 亚洲综合伊人| · —级AA伦aa坐爱午夜极速ⅴA一区天天噪天天噪天天噪 | 在线国产探花| 搡老女人老91妇女熟女| 在线观看综合精品亚洲| 欧美综合777| 婷婷六月色开| 亚洲欧美天堂| 日韩欧美偷拍美女视频| 国产精品无码在线| 少妇熟女一区二区三区| 东北黄色电影| 丰满人妻无码一区二区三区| chaopen97久久| 不卡超碰护士AV在线免费播放| 精品亚洲一区在线观看| 亚洲好色人妻| 青青草在线视频人人想人人上| 亚洲色图尤物视频| 一区二区三区高清| 久久国产视频专区一二三| 亚洲国产精品无码AV在线| 九九九网站| 操91| 九九九久千久久激情蜜桃在线看 | 免费一级精品啪啪视频| 无码人妻毛片丰满熟妇精品区| 98一区二区精品| 日本日皮视频逼| 少妇高潮流水av免费| 成人AV在线网站| 亚洲国产精品久久久男人的天堂| 亚洲毛片一级带毛片基地| 中文字幕一区二区日韩网| 久久AV无码1区2区3区| 思思性爱| 亚洲色图欧美一区二区不卡| 91熟女.com| 亚洲精品欧美专业| 亚洲精品一区中文字幕乱码| WWW啪啪的com| 一区二区中文| 青青青草原| Aa东京男人的天堂| 久久一二区四| 国产女人高潮视频| 亚欧性爱在线无码| 色色色色日本| 永久免费av无码网站国产app| 上床啊啊啊| 日本久久久精品电影| 免费超碰97久久| 色网1| 精品无码人妻一区二区免费蜜桃| 美女啊啊啊啊pc| 久操B网| 91青视频| 超碰午夜在线| 7月婷婷综合| 天堂麻豆天美| 亚州久久9| 国产精品视频在线播放| 久久久久密臀一区二区| 精品999日本| 国产青青美女玩逼视频| 亚洲综合九| 亚欧美综合| 青青操日韩| 啊啊啊啊好爽好舒服一区二区易域| 国产精品成人午夜福利| 97天天日| 亚洲精品乱码线路中文字幕| 日韩卡一卡二卡三在线| 立川理惠无码一区二区| 五月天婷婷影院|