Я разрабатываю веб-приложение, которое использует datomic. Как и в каждом веб-приложении, у меня есть управление пользователями, которое я хочу предоставить в виде отдельного модуля/библиотеки.
Теперь моя идея состоит в том, чтобы иметь базовую схему пользователя с электронной почтой, паролем и включенным флагом. Затем каждая библиотека, использующая мою пользовательскую библиотеку, будет добавлять дополнительные пользовательские атрибуты домена.
Итак, у меня было бы две схемы:
{:db/id #db/id [:db.part/db],
:db/ident :friendui
:db.install/_partition :db.part/db
:db/doc "The partition of the database for releases"}
{:db/id #db/id [:db.part/db]
:db/ident :friendui/id
:db/valueType :db.type/uuid
:db/cardinality :db.cardinality/one
:db/unique :db.unique/identity
:db.install/_attribute :db.part/db
:db/doc "A unique identifier for any element"}
;; users
{:db/id #db/id [:db.part/db]
:db/ident :user/email
:db/index true
:db/unique :db.unique/identity
:db/valueType :db.type/string
:db/cardinality :db.cardinality/one
:db.install/_attribute :db.part/db}
]...
И библиотека, которая использует пользовательскую библиотеку, выглядит так:
{:db/id #db/id [:db.part/db],
:db/ident :lweb
:db.install/_partition :db.part/db
:db/doc "The partition of the database for releases"}
{:db/id #db/id [:db.part/db]
:db/ident :lweb/id
:db/valueType :db.type/uuid
:db/cardinality :db.cardinality/one
:db/unique :db.unique/identity
:db.install/_attribute :db.part/db
:db/doc "A unique identifier for any element"}
;; users
{:db/id #db/id [:db.part/db]
:db/ident :user/attr1
:db/index false
:db/valueType :db.type/string
:db/cardinality :db.cardinality/one
:db.install/_attribute :db.part/db}
....
Теперь проблема, которую я вижу, заключается в том, что у меня есть два разных раздела, которые нужно объединить. Есть ли способ решить это с помощью datomic?
Обновление Чем больше я об этом думаю, тем больше я предполагаю, что мне просто нужно определить схему в используемой библиотеке и объявить в схеме то, что нужно пользовательской библиотеке.