Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 如何利用实体关系图对数学表达式进行建模?_Database_Database Design_Math_Data Modeling_Entity Relationship - Fatal编程技术网

Database 如何利用实体关系图对数学表达式进行建模?

Database 如何利用实体关系图对数学表达式进行建模?,database,database-design,math,data-modeling,entity-relationship,Database,Database Design,Math,Data Modeling,Entity Relationship,我是实体关系图(EntityRelationshipDiagrams,ERD)的新手,在尝试为以下问题提供图表/模型时遇到了一些困难-我甚至不知道从哪里开始。这可能吗?如有任何建议或解决方案,将不胜感激 如何使用ERD进行一般性分析 模型数学表达式(加上, 减、乘、除)取 考虑到以下几点 表达式的优先级 待评估 必须首先计算方括号中的表达式(请注意,方括号可以嵌套在其他方括号中,深度不限) 乘法和除法必须在加减之前计算 乘法和除法必须从左到右计算 加号和减号必须从左到右计算 请指出找到的属性

我是实体关系图(EntityRelationshipDiagrams,ERD)的新手,在尝试为以下问题提供图表/模型时遇到了一些困难-我甚至不知道从哪里开始。这可能吗?如有任何建议或解决方案,将不胜感激

如何使用ERD进行一般性分析 模型数学表达式(加上, 减、乘、除)取 考虑到以下几点 表达式的优先级 待评估

  • 必须首先计算方括号中的表达式(请注意,方括号可以嵌套在其他方括号中,深度不限)
  • 乘法和除法必须在加减之前计算
  • 乘法和除法必须从左到右计算
  • 加号和减号必须从左到右计算
请指出找到的属性 在图中所示的每个实体中 建议的解决方案/图表


如果您愿意将所有表达式都视为“括号”,并将toyr存储视为表达式树,那么这可能比您想象的要简单。所有操作都是从左到右的,这很有帮助。只需考虑一个递归设计,其中每个操作数可以是另一个表达式的ID(递归)或文字(BaseCase.)/< 你不会有太多的ER图本身

Expression: id, leftOperand, rightOperand, operator

You may or may not want an operator table.  Depends on what you foresee being done in database and what you foresee being done in application code.
Operators: id, symbol, 

如果要以表的形式表示表达式,我会使用嵌套集来表示某些操作数本身就是表达式这一事实

我把运算符优先级视为语法糖,这使得用基于文本的编程语言编写公式更加容易。我认为在内部模型中明确优先级可能比使用优先级规则消除歧义更有价值


至于详细的设计,我把它留作家庭作业。

但是谁给你的?老师?真的吗

ER图不是为这个设计的!你的老师知道什么是ER图吗?对于这种建模,有活动和其他图表

但首先,我看到了一个递归关系:

Expression ----inside----> Bracket ------->cotains------->Bracket 
表达式是一个实体,括号是一个实体。内部和内部是关系。括号有一个关系,它又和它自己有关。不要画两个实体。。等等

看看这里:
表达式等于图形中的字符,括号等于Account…

这当然是可能的(尽管我怀疑根据提示的措辞,我给出的答案可能不是预期的答案)。你只需要想出“东西”是什么。这些是你的实体。然后找出他们之间的关系。这就是你的关系。然后你就可以知道这些东西应该有什么属性了。。。我有一个作为家庭作业…是的,但在现实世界中,你们永远不会把这样的东西建模为ER图。这是违反规定的。它更多的是一个行为图,比如用例图或活动图。Dave,我部分同意。我当然从来没有想过要用ERD来表达。但这里还有很多其他问题,这些都是我不愿做的事情的例子。所以在疯狂中可能有方法。当然,用数据表示过程可能有价值。如果您已经决定这样做,那么数据分析可能是下一个合乎逻辑的步骤。假设您希望创建一个类似EmarCaro和其他工具的工具,该工具允许您以交互方式指定数据库,并存储数据模型(在元数据库中),最终可以将您的工作转换为一系列创建命令(创建数据库、创建表等),这些命令进入数据库创建脚本。如果要包括“创建视图”,则必须对选定对象建模。选择列表的元素是表达式。现在您需要一个用于数据分析的表达式的ERD。