-
不不不不,兩邊的資料都是真實有效的,表A是主表,表A的外來鍵列是連線到表A的主鍵,主要保證了資料的完整性,因為主表中的主鍵不能為空,只能是唯一的, 從而保證其他表一定能找到表A中唯一的記錄。
表 b 中的外來鍵可以為空,但它必須是表 a 中主鍵的所有值之一。
關聯的含義,比如假設表A類似於一本書,每條記錄都是一本書的一頁,那麼如果要標識每一頁,頁數的屬性與主鍵相似,你的書可以跳過頁數,但不能沒有列印的頁數, 也不能有兩頁的頁數相同。有了這個約束,如果我們都要把書連線起來,那麼我可以決定要讀哪一頁,當然我不能要求你讀書(類似外來鍵是空的),但是一旦我要求你讀書,那麼頁數必須在書的頁數之內, 如果這本書只有100頁,我請你讀101頁,你不報告錯誤嗎?
因此,關聯保證了資料的完整性,但由於這種嚴謹性,在實踐中,如果假設員工表和工資表,則工資表與員工表相關聯,並使用員工編號字段。 在這種情況下,如果使用關聯,則必須先在員工表中插入記錄,因為這是主鍵記錄,然後才能將資料插入到工資單中。 但是,在實踐中,這些事情往往是分開的,部門裡沒有不同的人很難協調,所以有時候在實際操作中,他們只是邏輯上認識到有這樣一把鑰匙,並沒有建立實際的關係。
-
與更新關聯的更新級聯是否存在引用完整性約束?
-
如果使用的是 SQL Server 資料庫,則可以嘗試觸發器函式。
如果對錶 A 執行 update、delete 和 insert 操作之一,觸發器可以捕獲表 A 上的操作,並根據您執行的 T-SQL 語句執行所需的 T-SQL 語句邏輯(強大)。例如,對錶 B 執行 T-SQL 語句(更新、刪除、插入、儲存過程等)
以上內容只是資料庫設計的乙個知識點,還有其他的東西,如約束、全文索引、檢視等都與表的設計密切相關,房東可以搜尋相關教程。
good luck to you .
-
你使用 jpql 查詢來嘗試,我曾經使用 createnativequery(sql) 並且找不到資料,但後來我可以改用 jpql。
-
如果是 postgres 資料庫,請定義乙個字段、陣列型別,僅此而已。
如果是不同型別的資料庫,建議執行以下操作。
1。可以滑動所選專案以建立表格,因為選項可能會增加。 該錶被設計為選項的 id 和內容。
2。使用者本身省略了表、使用者 ID(唯一標識使用者)以及有關使用者的其他資訊。
3。對於使用者選項,可以設計另乙個表,表中的字段為使用者 ID、選項 ID、刪除標誌(0:有效資料,1:無效資料)。
您也可以不刪除該標誌,如果選中了選擇內容,則直接將其刪除,然後物理刪除。
更改使用者狀態時,如果新增選項,則將一段資料插入到剛剛定義跟蹤的表中,如果刪除選項,則將更新表中的資料。
您還可以執行以下操作:如果使用者重新提交結果(僅當選項更新時才允許提交),最簡單的方法是刪除使用者問題的所有選項並插入新選擇。 這是目前最好的方法。
-
這應該是乙個多對多的關係,最好使選項和使用者之間的關係獨立於乙個**來設計。 也就是說,有三個表:使用者表、選項表和關係表。
其實上面的設計比較靈活,因為關係表中的字段數量少,所以頻繁的刪除和插入不會造成太大的影響。 否則,你會將選中的專案字段附加到使用者表中,並清楚地記下所選選項的ID號,並使用分隔符將其分隔,但這種方法在查詢後需要單獨處理,並不一定比刪除和插入更好。
-
具有多列的表就足夠了,並且使用者的 ID 與使用者表相關聯。
-
在這種情況下,需要單獨建立客戶位址對應表,以實現多位址記錄管理。
-
建議你建立乙個檢視,效率會提高很多,當然,如果你能建立乙個過程,然後使用呼叫語句,效率可以最大化。
MySQL表的設計應該有乙個與多個表關聯的關鍵字,通常新使用者會建立乙個檢視以提高效率,但優化的最好方法是過程
-
一般使用過資料庫的你,會選擇第二種方式,複雜的關係不是問題,主要是設計最合理,關係模式更容易理解第一種,看似一目了然,但是以後你新增費用欄位就很麻煩了 第三, 而且分攤費用也很麻煩。
第二個很複雜,但是你要查詢的所有內容都可以通過連線查詢出來,記住學習資料庫時有三個表。
學生表、課程表、成績單。
關係模式與你的第二種關係模式完全相同。
-
第二種是標準的關聯式資料庫設計方法,符合正規化。 不要猶豫,選擇第二個。
-
如果擴充套件不大,則使用選項1,相反,考慮選項2,複雜度不會太大,不推薦方案3,不符合資料庫的設計原則。
-
1.表中的主鍵是使用 char 型別使用固定長度建立的,因此在索引後,查詢速度會更快。
2.datetime 欄位不應使用 timestamp 型別,因為 timestamp 型別查詢起來非常費力(在 ..and ..
建議以 yyyymmdd 的形式新增乙個格式為 fdatestr 的字段並對其進行索引。
這樣,在查詢某一天時,直接使用條件 fdatestr ='20130318',因為已經索引了,所以查詢效果應該很明顯。
如果要按月查詢,可以再新增兩個格式為 fmonth 的字段:yyyymm。
FDAY 格式:DD 日。
並對這兩個字段進行索引,這樣可以提高查詢的效率。
簡而言之,如何根據您的需求進行設計。
-
1000w 你用 int?? 跋扈!! 你到底想怎麼做這個,建議你不要用時間戳型別做日期,問專業就改個數字,你真的做不到,日期型別在資料庫裡,不管是查什麼的,都是最慢的,怎麼設計都無所謂, 如果沒有表,則查詢語句並新增索引。
-
id 索引日期將轉換為成人、月份和日期格式。
-
create table test1
a int 主鍵 not null identity(1,1),b varchar(20) unique)主鍵和 uniuqe 約束!
呵呵。 還要告訴以下內容:
它們都表示唯一值,但存在以下差異:
主鍵:不重複,不能為空 唯一:可以為空一次!
嘻嘻! 讓我們一起來學習吧!
-
在你看來,你的表是乙個多對多的關係。 必須有三個表,第乙個表放產品資訊,第二個表放商店資訊,第三個表放產品到商店關係。
第乙個表中產品的主鍵和第二個表的儲存鍵是第三個表所屬的外來鍵。
查詢也很簡單,設定第乙個產品表P的主鍵作為P ID,設定第二個商店資訊表S的主鍵作為S ID
第三個關係表 a(p id,s id)。
已知產品資訊查詢:
select * from p,s where (p_id,s_id) in (select p_id,s_id from a where "");
已知店鋪資訊查詢:
select * from p,s where (p_id,s_id) in (select p_id,s_id from a where "");
不太確定你在說什麼關鍵詞。
我將在此處使用主鍵 id,您將使用關鍵字來解決它。
-
這是資料庫中的多對多關係,通常需要設計為三個表。
第乙個表是產品的表。
第二張桌子是商店的桌子。
第三張表由前兩個表的主鍵和兩個表之間的關係組成,第三個表參考了薩世軒的《資料庫系統導論》,高等教育出版社。
-
你說的案例是冬眠中的自相關案例。 絕對。 請參閱休眠類別的自相關性。
-
可以有幾種設計方法。
第一種:如果好友有上限,如果是200,這張表有201個字段,第乙個欄位是自己的Q號,其他欄位是好友的Q號,但是這樣弄起來也很麻煩。
其次,將主 ID 和好友 ID 設定為聯合索引,乙個主 ID 可以對應多個好友 ID
第三種:鏈結兩個表,乙個使用者表,乙個友表,使用者表中的ID是友表中的外來鍵
我不知道這是否可行,它類似於第乙個,但是有兩個字段,乙個主 ID 和乙個好友 ID,每個好友 ID 都用符號分隔。
在將來的查詢中,這可能會更加費力。
-
當前表為使用者表,即本地登入的賬號,另一表為使用者好友列表,有兩個字段,第乙個欄位為索引(關聯主表中的賬號)。另乙個字段儲存您朋友的資訊,當然,您可以新增其他配置檔案字段進行詳細設計。
在設計上,主賬戶集中在乙個表中,另乙個表是次要的,主要是擴充套件了主賬戶的細節。 不僅可以儲存好友列表,還可以儲存其他帳戶資訊、虛擬貨幣、等級、會員狀態等。
在好友關聯資訊中,可以放置大量關聯號碼,通過模糊的固定段值搜尋,可以檢測出與主賬號關聯的所有好友資訊。
-
將兩個表放在一起,並從 Excel 中組織好友表中的資料,很容易獲得結構。
QQ使用者QQ好友。
a 1a 2a 3
b 11b 12
db2 是對乙個表進行記錄操作,他會鎖定整個表表,如果事務級別設定是可重複讀取的,那麼另乙個人的同步操作就會被回滾,但是鎖級別可以通過 SQL 語句指定,sqlserver 預設是鎖定行資料,如果想看這個問題, 你可以先研究一下資料庫的鎖定方法和鎖級別,死鎖必須存在,尤其是在併發操作多的情況下,這與你的資料庫的設計有關,關鍵是死鎖被抓到後如何釋放。
是的,但您需要建立兩個具有不同名稱的連線物件,例如(我隨機回覆並使用 access 作為示例,您可以切換到 SQL Server 連線): >>>More