| 剛試了一個入門級的數據庫設計問題,答案不對。不知道是不是我沒說清楚 | |||||||||||||||||||||||||||||||||
| 送交者: 漁樵閒話 2025月02月04日09:54:54 於 [世界軍事論壇] 發送悄悄話 | |||||||||||||||||||||||||||||||||
| 回 答: 也別把AI吹那麼神。AI以前是被當笑話看的。 由 漁樵閒話 於 2025-02-04 06:09:34 | |||||||||||||||||||||||||||||||||
|
對ON DELETE CASCADE的理解完全錯了。
為了滿足以下需求:
我們可以設計一個關係數據庫,其中:
以下是詳細的設計: 1. 地址表 ( |
| 列名 | 數據類型 | 約束條件 |
|---|---|---|
AddressID | INT | 主鍵,自增 |
StreetAddress | VARCHAR | 非空 |
PostalCode | VARCHAR | 非空 |
SQL 創建語句:
CREATE TABLE Address ( AddressID INT PRIMARY KEY AUTO_INCREMENT, StreetAddress VARCHAR(255) NOT NULL, PostalCode VARCHAR(20) NOT NULL);
2. 用戶表 (User)
這個表存儲用戶信息,包括用戶的名字和辦公地址。辦公地址是一個可選字段,因此可以為空。
| 列名 | 數據類型 | 約束條件 |
|---|---|---|
UserID | INT | 主鍵,自增 |
FirstName | VARCHAR | 非空 |
OfficeAddressID | INT | 外鍵,引用 Address.AddressID,可為空 |
SQL 創建語句:
CREATE TABLE User ( UserID INT PRIMARY KEY AUTO_INCREMENT, FirstName VARCHAR(100) NOT NULL, OfficeAddressID INT, FOREIGN KEY (OfficeAddressID) REFERENCES Address(AddressID) ON DELETE SET NULL);
3. 用戶-地址關係表 (UserAddress)
為了實現“當用戶被刪除時,自動刪除相關地址”,我們需要一個額外的表來管理用戶和地址之間的關係。這個表將記錄哪些地址是由用戶創建的。
| 列名 | 數據類型 | 約束條件 |
|---|---|---|
UserID | INT | 外鍵,引用 User.UserID,級聯刪除 |
AddressID | INT | 外鍵,引用 Address.AddressID,級聯刪除 |
SQL 創建語句:
CREATE TABLE UserAddress ( UserID INT, AddressID INT, PRIMARY KEY (UserID, AddressID), FOREIGN KEY (UserID) REFERENCES User(UserID) ON DELETE CASCADE, FOREIGN KEY (AddressID) REFERENCES Address(AddressID) ON DELETE CASCADE);
4. 關鍵設計點
用戶刪除時自動刪除地址:
當用戶被刪除時,
UserAddress表中與該用戶相關的記錄會被自動刪除(由於ON DELETE CASCADE)。由於
AddressID在UserAddress表中被級聯刪除,相關的地址記錄也會被刪除。(錯了!)地址刪除時保留用戶:
當地址被刪除時,
User表中的OfficeAddressID會被設置為NULL(由於ON DELETE SET NULL),從而取消用戶對地址的引用。用戶和地址的關係:
UserAddress表用於記錄哪些地址是由用戶創建的,確保只有用戶創建的地址才會在用戶刪除時被級聯刪除。
|
|
![]() |
![]() |
| 實用資訊 | |
|
|
|
|
| 一周點擊熱帖 | 更多>> |
| 一周回復熱帖 |
| 歷史上的今天:回復熱帖 |
| 2024: | 美國大蕭條前兆 | |
| 2024: | 習思想救市救成股災 股民信心崩塌 | |
| 2023: | 氣球戰略武器:只有中國打美國,美無法 | |
| 2023: | 外交部發言人就美方宣布推遲美國務卿布 | |
| 2022: | 強迫消費?冬奧一瓶水賣340元 媒體中心 | |
| 2022: | ​美國運動員盛讚北京奧運村高 | |
| 2021: | 東郭先生的尷尬 貧限想之八 | |
| 2021: | 如何制裁台灣買美國武器 妙招之三 | |
| 2020: | 中國駐美國紐約領事館,華春瑩講話全文 | |
| 2020: | 李蘭娟院士發布最新研究成果:阿比朵爾 | |



