我在尝试为学校项目制定概念时遇到了问题。我有两个问题。
1 / 是否有可能与oracle做这样的事情:https://mariadb.com/kb/en/dynamic-columns/
2 / 我怎样才能用MCD进行模型化(方法merise)。
感谢
答案 0 :(得分:1)
从您的链接引用:“它的工作原理是在blob中存储一组列,并使用一小组函数来操作它。”。我没有看到为什么你不能为Oracle(或任何其他关系数据库)编写类似的东西的明显原因。
或者,请查看EAV,这是一种更传统的动态列解决方案。
抱歉,我不熟悉Merise。
答案 1 :(得分:0)
1 / Oracle不是用于创建动态列,但是您可以通过使用PL / SQL函数来实现(但不能在使用SQL查询时):
create or replace procedure add_table_column(table_name varchar2, column_name varchar2, column_type varchar2)
is
v_script varchar2(4000);
begin
v_script := 'alter table '||table_name||' add '||column_name||' '||column_type;
execute immediate v_script;
end;
/
您可以这样称呼它:
begin
add_table_column('toto','test','number');
end;
/
2 / Merise方法不适用于“动态对象”,因为您必须以完整的数据字典开头。
您的对象如何动态,为什么还要添加列?
您可以通过使用“常规”表格和关系来获得工作解决方案。
听起来你应该从分析技术实现开始。 MERISE表示首先分析您的数据模型 并开始考虑之后的技术解决方案。