Вопрос

Существует ли стандартная (неграфическая) нотация для отношений сущностей?

прямо сейчас я использую свою собственную дерзкую нотацию:

  • Пользователь >> Фотография, (1-много)
  • Пользователь > Профиль , (1-1 имеет один)
  • Профиль < Пользователь , (принадлежит 1-1)
  • Фотография << Пользователь , (принадлежит многим-1)
  • Фотография <> Тег , (много-много)
Это было полезно?

Решение

Почему бы не использовать то же самое, что и в ER-Диаграммах:

  • Пользователь 1-n Фотографий
  • Профиль пользователя 1-1
  • Фотография n-1 Пользователя

и так далее. Но я никогда не слышал об официальном стандарте открытого текста.

Другие советы

Прошло почти 10 лет, и мне также было трудно найти стандарты открытого текста.Вот что я нашел на данный момент (хотя, честно предупреждаю, в основном это графические стандарты, которые хорошо работают в тексте).

Во-первых, общим термином для описания количества элементов связи между объектами является "множественность".

Это ассоциативное отношение указывает на то, что (по крайней мере) один из двух связанных классов ссылается на другой.Эти отношения обычно описываются как "у А есть Б" (у кошки-матери есть котята, у котят есть кошка-мать).

Хотя значительное число источников также использует термин "мощность".Есть несколько хороших ответов о разнице на этот SO-вопрос о Множественность против Мощности.Я нашел этот ответ довольно кратким:

... кратность состоит из меньшей и верхней мощности.Мощность - это количество элементов в наборе.Таким образом, кратность сообщает вам о минимально и максимально допустимых членах набора.

Обозначение множественности в UML

UML-это обозначение множественности хорошо работает в тексте.

+--------------+--------+-----------------------------------------+
| Multiplicity | Option |               Cardinality               |
+--------------+--------+-----------------------------------------+
| 0..0         | 0      | Collection must be empty                |
| 0..1         |        | No instances or one instance            |
| 1..1         | 1      | Exactly one instance                    |
| 0..*         | *      | Zero or more instances                  |
| 1..*         |        | At least one instance                   |
| 5..5         | 5      | Exactly 5 instances                     |
| m..n         |        | At least m but no more than n instances |
+--------------+--------+-----------------------------------------+

Кажется, существует несколько вариантов этого:

  • Корпорация Майкрософт Реляционная Нотация

    +---------------------------------+---------------------+
    |          Multiplicity           |     Cardinality     |
    +---------------------------------+---------------------+
    | *                               | One to zero or more |
    | 1..*                            | One to one or more  |
    | 0..1                            | One to zero or one  |
    | 1                               | Exactly one         |
    | Two numbers separated by a dash | a range             |
    +---------------------------------+---------------------+
    
  • IBM- это

    +------+--------------------+-------------------------------+
    | Rose | Software Architect |          Description          |
    +------+--------------------+-------------------------------+
    | n    | *                  | Unlimited number of instances |
    | 1    | 1                  | Exactly 1 instance            |
    | 0..n | *                  | 0 or more instances           |
    | 1..n | 1,,*               | 1 or more instances           |
    | 0..1 | 0..1               | 0 or 1 instances              |
    +------+--------------------+-------------------------------+
    
  • Smartdraw's Стиль Мартина

Стиль Чэнь

От то, что я прочитал Стиль Чэнь - это "оригинальный формат".Я обычно это выражается в тексте как:

+----------+--------------+
| Notation | Description  |
+----------+--------------+
| 1:1      | One to One   |
| 1:N      | One to Many  |
| N:1      | Many to One  |
| M:N      | Many to Many |
+----------+--------------+

IDEF1X и другие

Там есть IDEF1x (стандарт NIST):

IDEF1X - это метод проектирования реляционных баз данных с синтаксисом, предназначенным для поддержки семантических конструкций, необходимых при разработке концептуальной схемы.

Это, по - видимому, описывает Обозначения Min-Max / ISO (английская ссылка в настоящее время не работает, но вот немецкая статья), на который ссылается Википедия Статья о модели сущности–отношения в котором также перечислены несколько других стилей графических обозначений, некоторые из которых удобны для текста.

enter image description here

Немецкий язык статья в (минимальной, максимальной) нотации также содержит полезную таблицу, сравнивающую UML, Chen, (min, max) и MC (Модифицированный Чен):

+----------------------+-----------------+---------------------------------+-------------+-----------------+----------------------+
| (min,max) [Entity 1] | [UML, Entity 1] |          Chen-Notation          | MC-Notation | [UML, Entity 2] | (min,max) [Entity 2] |
+----------------------+-----------------+---------------------------------+-------------+-----------------+----------------------+
| (0,1)                | 0..1            | 1:1                             | c:c         | 0..1            | (0,1)                |
| (0,N)                | 0..1            | 1:N                             | c:mc        | 0..*            | (0,1)                |
| (0,N)                | 1..1            | 1:N + total participation       | 1:mc        | 0..*            | (1,1)                |
| (0,N)                | 0..*            | M:N                             | mc:mc       | 0..*            | (0,N)                |
| (1,1)                | 0..1            | total participation + 1:1       | c:1         | 1..1            | (0,1)                |
| (1,N)                | 0..1            | total participation + 1:N       | c:m         | 1..*            | (0,1)                |
| (1,1)                | 1..1            | total part. + 1:1 + total part. | 1:1         | 1..1            | (1,1)                |
| (1,N)                | 1..1            | total part. + 1:N + total part. | 1:m         | 1..*            | (1,1)                |
| (1,N)                | 0..*            | total participation + M:N       | mc:m        | 1..*            | (0,N)                |
| (1,N)                | 1..*            | total part. + M:N + total part. | m:m         | 1..*            | (1,N)                |
+----------------------+-----------------+---------------------------------+-------------+-----------------+----------------------+
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top