Альтернатива "хозяин" и "раб" в отношениях сущностей? - PullRequest
11 голосов
/ 06 января 2010

Пример: в моей базе данных есть две таблицы с именами classA и classB и одна таблица с именем classA_classB . Последний только что определил два поля типа int с внешними ключами для связи между classA и classB. Таким образом, один classA может иметь несколько classB, и многие classA могут связываться с одним и тем же classB. Пока все просто.

Проблема, в моем особом случае, в том, что у меня есть classA, который хочет связать с другим classA. То есть Студент связывается со своими друзьями, которые тоже являются студентами.

Итак, аналог вышеописанной техники, у меня есть: student и student_student . student_student имеет два поля: student_id, student_id. Проблема: не может быть двух полей с одинаковыми именами!

Так что я должен назвать их как: master_student_id, slave_student_id.

Но мне не нравятся термины «Мастер» и «Раб», потому что это напоминание о плохом времени в наших прошлых. Это может звучать глупо, но я думаю, что это неправильно, по крайней мере, с моральной точки зрения. Я знаю, что это только часть современной информатики, но ...

как еще я могу им позвонить?

родитель и ребенок может быть? Также я не уверен, есть ли действительно одна сущность "начальник", в то время как другая - "работник" ... Студент и Студент не иерархичны. Но опять же, давайте представим, что у нас было два класса «Учитель» и «Ученик». Это было бы четкой иерархией. Тем не менее, мне нужно нейтральное решение, потому что мой фреймворк всегда использует эти отношения 1: n одинаково.

Ответы [ 8 ]

8 голосов
/ 18 августа 2011

отраслевым стандартом в наши дни является {главный-последователь}

см. Следующие ссылки:

[01]
www.mchotline.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_master_follower_pd11_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.burhansresearch.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

это также имеет больше смысла - нет необходимости использовать морально предосудительный термин для иерархического устройства компьютерного / технологического управления ... например, мы бы обозначали разъемы как "мужской" и "женский", а не "мужской" и " Шлюха ".... оба случая" имеют смысл "в некотором описательном смысле, однако лучше всего подчеркнуть это, используя не морально предосудительные или подстрекательские термины

отличный вопрос, кстати!

7 голосов
/ 06 января 2010

Родитель и ребенок или владелец и ребенок - это общепринятые решения.

3 голосов
/ 06 января 2010

Как насчет student_id и friend_id? Нет правила, согласно которому ваши внешние ключи должны иметь те же имена столбцов, что и первичный ключ.

2 голосов
/ 09 мая 2014

существует 3 конкурирующих отраслевых альтернативы ведущему / ведомому. они:

  • Master / Follower
  • Parent / Child
  • Primary / Secondary

Я думаю, что первичное / вторичное - это странно, потому что у нас может быть несколько вторичных. Я чувствую, что после вторичного обучения будет третичный, четвертичный и т. Д. Слишком много боли.

Мастер / Последователь по-прежнему имеет смутные коннотации рабства / феодализма.

Это оставляет нас только с Родителем / Ребенком ... но мне это не очень нравится, потому что Ребенок кажется неспособным, но в некоторых случаях мы будем зависеть от Ребенка, а не от Родителя ...

Итак, я собираюсь предложить еще одну комбо здесь:

  • Primary / Alternate

Это наименование должно избегать любых проблем рабства, пола и множественности.

2 голосов
/ 06 января 2010

related_id или related_student_id будет моим предпочтением.

1 голос
/ 10 декабря 2010

{ведущий-последователь} вместо {ведущий-ведомый}

1 голос
/ 07 января 2010

Зависит от того, является ли отношение (давайте назовем это R) симметричным. Если это так, то с person1, person2 все в порядке, поскольку R (person1, person2) = R (person2, person1). Если они не симметричны, то имена, вероятно, должны отражать отношения «агент и пациент». Поэтому используйте слово для обозначения агента и слово для обозначения пациента, например, Befriender, Друг.

1 голос
/ 06 января 2010

Какова роль двух учеников в отношениях? Друзья? Наставники? Знакомые? Есть много возможных ролей, которые они выполняют.

Вы можете провести мозговой штурм для множества ролей с асимметричными именами.

друг, друг_о

наставник, mentored_by

реферер, Refer_by

...