2017-10-29 138 views
0

我想創建具有擴展列的表,具體取決於用戶活動。 如果我有表Project,Worker和Worker_Projects,看起來像這樣:Oracle SQL動態列

Worker_project: 工人名稱,項目名稱列表列。 每當我添加項目我想改變表格,並添加列, 但問題是,PL SQL不支持一些靜態SQL,包括Alter。

我還有什麼其他解決方案?

回答

2

錯誤的方法。正確的表格列表,但方法錯誤。

create table WorkerProject (
    WorkerId int not null references Workers(WorkerId), 
    ProjectId int not null references Projects(ProjectId) 
); 

這是基本的想法。你並沒有真正給出你的表格的佈局,但主意是你添加了一個新的,而不是新的。這被稱爲聯結表。

您也可以在表格中添加其他信息。例如,工作人員分配的日期,誰分配的日期等等。

我應該指出,Oracle是一個功能強大的數據庫,可以提供其他解決方案,例如嵌套表或JSON編碼。首先,您應該掌握如何以SQLish方式存儲關係數據庫的基礎知識。如果您有特定需求,那麼還有其他功能可以提供幫助。