Моделирование лучших практик с Grakn - PullRequest
0 голосов
/ 07 мая 2020

Я рассмотрел, как моделировать данные, и у меня есть несколько вопросов относительно использования ролей в Grakn.

Возьмем простой случай. У меня есть Компания, и эта Компания может быть Дистрибьютором, Поставщиком, Заказчиком или любой такой комбинацией. Компания A может быть дистрибьютором и покупателем одновременно.

Если я использую реляционную базу данных, у меня будет таблица для CompanyS, а затем таблицы для SupplierS, CustomerS и c, которые затем будут обратитесь к таблице компании.

Однако я хочу начать с компании и знать, какие роли она играет, без необходимости создавать эти дополнительные столы. Так что в моем приложении я могу узнать, что компания является одновременно дистрибьютором и поставщиком в одном запросе.

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

Итак, я ищу общие шаблоны или стратегии для моделирования и именования определенных ролей сущностей. Я использую Grakn. Любая помощь приветствуется.

1 Ответ

0 голосов
/ 29 мая 2020

Если я правильно понимаю, вы хотите спросить об общих практических правилах выбора ролей. Выбор ролей также связан с выбором именования ваших отношений, сущностей и атрибутов. В данном случае company повсеместно моделируется как сущность, но есть множество примеров, когда вы можете понять, что у вас перепутались наименования сущности / отношения / роли.

Попробуйте это для общего Руководство:

Сущность: Должна быть способна к собственному существованию в мире. Может быть абстрактным понятием. Используйте абстрактные существительные (company, religion), собирательные существительные, нарицательные.

Отношение: должно существовать в зависимости от существования его ролевых игроков. Используйте абстрактные существительные (marriage, membership, hierarchy) и глагольные (authorship, ownership,).

Роль: должна описывать поведение в контексте отношения. Вы можете попробовать использовать это предложение: [объект] ведет себя как [роль] в [отношении]. Например, station ведет себя как stop в train-route. Следует использовать существительные.

Атрибуты: должны описывать только количество например, name (строка), age (длинное), colour (строка), is-green (логическое ), verbose (логическое), is-running (логическое), score (двойное). Обычно существительные или глаголы. Что угодно, если оно хорошо описывает значение.

...