Database “替代方案”;大师;及;“奴隶”;在实体关系中?

Database “替代方案”;大师;及;“奴隶”;在实体关系中?,database,architecture,entity,Database,Architecture,Entity,示例:我的数据库中有两个表名为classA和classB,还有一个表名为classA\u classB。最后一个定义了两个带有外键的int字段来链接classA和classB。因此,一个classA可以有多个classB,并且多个classA可以与同一个classB链接。简单的东西,到目前为止 问题是,在我的特殊情况下,我有一个classA想要链接到另一个classA。也就是说,学生链接到他的朋友,他们也是学生 与上面的技巧类似,我有:student和student\u student。学生有两

示例:我的数据库中有两个表名为classAclassB,还有一个表名为classA\u classB。最后一个定义了两个带有外键的int字段来链接classA和classB。因此,一个classA可以有多个classB,并且多个classA可以与同一个classB链接。简单的东西,到目前为止

问题是,在我的特殊情况下,我有一个classA想要链接到另一个classA。也就是说,学生链接到他的朋友,他们也是学生

与上面的技巧类似,我有:studentstudent\u student。学生有两个字段:学生id,学生id。问题:不能有两个同名字段

所以我必须这样称呼他们:主人学生id,奴隶学生id

但是我不喜欢“主人”和“奴隶”这两个词,因为这两个词提醒我们过去的糟糕时光。这听起来可能很傻,但我认为保留这些是不正确的,至少从道德的角度来看是这样。我知道这只是现代计算机科学的一部分,。。。但是

我还能怎么称呼他们呢


也许是父母和孩子?此外,我不确定是否真的有一个实体是“主管”,而另一个实体是“员工”。。。学生和学生之间没有等级关系。但是,再一次,让我们想象一下我们有两个班“老师”和“学生”。这将是一个清晰的层次结构。但是,我需要一个中立的解决方案,因为我的框架以相同的方式处理这些1:n关系。

学生id和朋友id如何?没有规则规定外键必须与主键具有相同的列名。

通常接受的解决方案是父项和子项或所有者和子项。

这两个学生在关系中的角色是什么?朋友?导师?熟人?他们可能扮演很多角色

您可以集体讨论许多名称不对称的角色

朋友,你的朋友

导师,导师


推荐人、相关id或相关学生id推荐的推荐人将是我的首选

取决于关系(我们称之为R)是否对称。如果是这样,那么person1,person2就可以了,因为R(person1,person2)=R(person2,person1)。如果它们不是对称的,那么名称可能反映了“代理人和患者”的关系。因此,用一个词来表示代理人,用一个词来表示患者,例如:朋友、朋友。

{master follower}而不是{master-slave}

当今的行业标准似乎是{master follower}

见以下参考资料:

[01]
www.mchotel.com/Reference/MN20B302.pdf

[02]
www.ab.com/linked/drives/drvappsw/files/AppSets_PF700S/AS_PF700S_VirtEncdr_PositMaster_SL.pdf

[03]
www05.abb.com/global/scot/scot201.nsf/veritydisplay/bd987cd590c931fcc1257249003d8f4f/$file/factfile\u master\u followres\u pd11\u lowres.pdf

[04] www05.abb.com/global/scot/scot201.nsf/veritydisplay/a11e30d538ab1b49c2256def00493279/$file/en_800stdprg_mfguide_a.pdf

[05] www.danfoss.com/BusinessAreas/DrivesSolutions/MUSEC/

[06] forums.ni.com/t5/Motion-Control-and-Motor-Drives/Converting-a-master-follower-type-Cam-Grinding-Machine-to-CNC/td-p/1469070

[07] www.burhansrearch.com/mrcwfdbk1.htm

[08] www.eurekamagazine.co.uk/article/28893/Master-follower-communication-in-ABB-industrial-drives.aspx

[09] www.lockmasters.com/index.asp?PageAction=VIEWPROD&ProdID=49879

[10] www.perfusion.com/cgi-bin/forum/forum_posts.asp?TID=500

这也更有意义——没有必要用一个道德上应受谴责的术语来描述分层的计算机/技术控制安排。。。例如,我们将连接器指定为“男性”和“女性”,而不是“男性”和“妓女”。。。。这两种情况都是以某种描述性的方式“说明问题”,但最好使用非道德上应受谴责或煽动性的术语来说明问题


好问题,顺便说一句

似乎有3种与主/从竞争的行业替代方案。它们是:

  • 主/从
  • 父母/子女
  • 小学/中学
我认为小学/中学很奇怪,因为我们可以有多个中学。我觉得中学以后会是第三、四等太痛了

主人/追随者仍然有着模糊的奴隶制/封建主义含义

这就只剩下父母/孩子了。。。但我真的不喜欢这样,因为孩子听起来没有能力,但在某些情况下,我们将依靠孩子,而不是父母

因此,我将在此推荐另一个组合:

  • 主要/候补

这种命名应该避免任何奴隶制、性别和多元化问题。

我发现自己也陷入了这种困境。谢谢你的提问

我在一个集群中,所以我们更喜欢:

  • 从属->节点
  • 主->协调员
那好多了

编辑:重要的是要注意,例如,其他项目已经更新了它的策略,最近Linux内核文档得到了更新。引用:


想象一下一个框架,在这个框架中,您可以在web后端中创建实体。它自动生成所有内容,框架无法如此详细地了解上下文;)。。。这就是为什么我需要一个“通用”的解决方案。@openfrog:需要一些关于以下方面的见解:
For symbol names and documentation, avoid introducing new usage of
'master / slave' (or 'slave' independent of 'master') and 'blacklist /
whitelist'.

Recommended replacements for 'master / slave' are:
    '{primary,main} / {secondary,replica,subordinate}'
    '{initiator,requester} / {target,responder}'
    '{controller,host} / {device,worker,proxy}'
    'leader / follower'
    'director / performer'

Recommended replacements for 'blacklist/whitelist' are:
    'denylist / allowlist'
    'blocklist / passlist'