資料庫設計過程遇到的零散點記錄powerdesigner 資料庫設計 表設計

SieSteven發表於2015-11-16

希望可以完整記錄該專案中涉及到資料庫方面的各個點

20151207

1、關於表主鍵的設定

根據上司要求,主鍵都設定成了自增長的型別(曾堅持用guid做主鍵,可以保證唯一性,用EF處理時也很方便,減少與資料庫互動次數,但是被否決了)。但是,同時衍生出來的問題是:如果進行表格複製,主外來鍵關係將出現約束,無法直接複製貼上表格。需要truncate每個表。而且在寫程式碼的時候也有些不太方便,比如:以主鍵為關聯的話,純數字雖然可能一定程度上提高了安全性(url中parameter也為純數字)但是debug時就比較糾結了。無法快速定位哪條記錄。

所以,目前想出的解決方案是,主鍵自增長。但是另外建一列內部編碼。在主外來鍵關聯的時候,去內部編碼列,這樣可以避免貼上資料時主鍵自增長而對應不上的問題。在程式碼中,也以內部編碼列為主鍵,進行處理。缺點是:如果用EF,依舊無法改善多次與資料庫互動的問題。

20151116

1、外來鍵可以為null但是如果有值 必須為關聯表的主鍵值

2、sqlserver中的數值型別和使用情況

20151117

1、int  10  2147483647  smallint 2 5  32767

2、datetime  8 23

3、powerdesigner 關係不能迴圈外來鍵引用,會提示報錯。


4、powerdesigner  (1) 配置資料庫


  (2)配置資料庫資訊



(3)填寫資料庫資訊即可

(4)生成sql語句


20151118 

1、今天又生成了一下建立資料庫指令碼,並放到14中執行,發現主鍵不是自增,經度娘指點,在pd中設定一下主鍵屬性即可。如圖所示



2、Windows賬號下附加了一個資料庫,但是用測試賬號時沒有訪問許可權。修改測試賬號的對映關係時,發現報錯 15023 。結果對附加的庫--屬性--新增了owner之後就可以正常訪問了。yes 。在這家公司最後一個.NET專案了。但是卻是我的第一個.NET專案。希望做到完美。。。


2015-11-19

1、設定聯合主鍵

建立複合主鍵:

方法一:建立表之後,alter table table_name add primary key(欄位1,欄位2)   

方法二:CREATE TABLE 表名 (欄位名1 Int Not Null, 
                       欄位名2 nvarchar(13) Not Null 
                       欄位名3………… 
                       欄位名N…………) 
    GO 

    ALTER TABLE 表名 WITH NOCHECK ADD  
    CONSTRAINT [PK_表名] PRIMARY KEY NONCLUSTERED  
     ( 
          [欄位名1], 
          [欄位名2] 
     ) 
    GO  



相關文章