MySQL是一種關系型數據庫管理系統,它使用表格管理數據。在MySQL中,單表一對多指的是一個表格中的一個記錄與另一個表格中的多條記錄相關聯。
在MySQL中,實現單表一對多關系需要使用外鍵。外鍵是一個表格中的一個字段,它是另一個表格的主鍵。在關聯表格時,MySQL會自動檢查外鍵的有效性,確保只有存在的記錄才會被關聯。
<pre> CREATE TABLE `order` ( `OrderId` int(11) NOT NULL AUTO_INCREMENT, `OrderDate` datetime NOT NULL, `CustomerId` int(11) NOT NULL, PRIMARY KEY (`OrderId`), CONSTRAINT `FK_Order_Customer` FOREIGN KEY (`CustomerId`) REFERENCES `customer` (`CustomerId`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB; CREATE TABLE `order_detail` ( `OrderDetailId` int(11) NOT NULL AUTO_INCREMENT, `OrderId` int(11) NOT NULL, `ProductId` int(11) NOT NULL, `UnitPrice` decimal(10,2) NOT NULL, `Quantity` int(11) NOT NULL, PRIMARY KEY (`OrderDetailId`), CONSTRAINT `FK_OrderDetail_Order` FOREIGN KEY (`OrderId`) REFERENCES `order` (`OrderId`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB; </pre>
以上代碼創建了兩個表格,訂單(order)和訂單詳情(order_detail)。訂單和訂單詳情之間的關系是一對多,即一個訂單可以有多個訂單詳情記錄。
在訂單詳情表格中,OrderId字段是一個外鍵,它與訂單表格的OrderId字段相關聯。此外,如果訂單記錄被刪除,相關的訂單詳情記錄也將被刪除。這是使用ON DELETE CASCADE實現的。
以上代碼可以幫助您了解MySQL中的單表一對多關系。這是一種靈活且強大的數據模型,可用于管理復雜的數據。
上一篇mysql單行注釋
下一篇c json date