Database 我能做一个反射联想和正常联想吗

Database 我能做一个反射联想和正常联想吗,database,database-design,relational-database,Database,Database Design,Relational Database,我的标题没有它应该说的那么具体,因为我真的不知道如何表述它 好的,我想知道的是:我能不能在关系模型中创建如图所示的东西。 我想这样做是为了生成一个主键,主键包含来自boat表的两个标识符(以便获得攻击者ID和被攻击的boat ID)和海盗标识符。当我使用JMerise将其转换为逻辑模型时,这将完全满足我的要求。但它是正确的关系模型吗? & 谢谢大家。如果每次行动只有一名海盗和一艘被攻击的船,那么这取决于海盗是否总是使用同一艘船。如果海盗可能会换船,那么你就得 pirate 1----0,n

我的标题没有它应该说的那么具体,因为我真的不知道如何表述它

好的,我想知道的是:我能不能在关系模型中创建如图所示的东西。 我想这样做是为了生成一个主键,主键包含来自boat表的两个标识符(以便获得攻击者ID和被攻击的boat ID)和海盗标识符。当我使用JMerise将其转换为逻辑模型时,这将完全满足我的要求。但它是正确的关系模型吗? &


谢谢大家。

如果每次行动只有一名海盗和一艘被攻击的船,那么这取决于海盗是否总是使用同一艘船。如果海盗可能会换船,那么你就得

pirate 1----0,n action 0,n--attacked--1 boat
                   |                     |
                   |0,n----attacking--1--|
如果海盗总是使用同一条船,那就是

pirate 1----0,n action 0,n--attacked--1 boat
  |                                      |
  |0,1---------------------attacking--1--|

请注意基本原则,我认为在您的图表中,它们是错误的。

如果没有您的功能需求,就无法判断您的模型。你的第二个模型看起来好像一个行动只涉及一个海盗和两只船。如果这是你想表达的,没关系。在我天真的理解中,一个行动将包括一个或多个海盗,而且大部分只是一艘船(除非你算上海盗的船)。我看不出这里应该发布什么,因为无论是船只、海盗还是行动,都没有指向他们自己。谢谢谭的回答,事实上我想代表的是一个海盗用他的一艘船攻击一艘船。我想我用反身这个词是不正确的,就像我说的,如果没有我的两个模型,我真的不知道如何发布我的问题。我会坚持你的答案,希望我的老师会同意这个观点。在同一个游戏中,我有多个海盗用多条船攻击多个玩家的船。