我想创建包含扩展列的表,具体取决于用户活动。 如果我有表Project,Worker和Worker_Projects,看起来像这样:
Worker_project: 工作者名称,项目名称列表作为列。 每次我添加项目我想改变表并添加列, 但问题是PL SQL不支持某些静态SQL,包括Alter。
我还有其他解决方案吗?
答案 0 :(得分:2)
错误的做法。正确的表格列表,但方法错误。
create table WorkerProject (
WorkerId int not null references Workers(WorkerId),
ProjectId int not null references Projects(ProjectId)
);
这是基本的想法。您并没有真正给出表格的布局,但想法是添加新的行,而不是新的列。这称为联结表。
您也可以在表格中添加其他信息。例如,分配工作人员的日期,分配工作人员的日期等等。
我应该指出,Oracle是一个功能强大的数据库,提供其他解决方案,例如嵌套表或JSON编码。首先,您应该掌握如何以SQLish方式存储关系数据库的基础知识。如果您有特定需求,那么还有其他功能可以提供帮助。