You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I have one entity used for dynamically created data categories. Each of these categories is independent and handled by a separate isolate.
Proposed solution
Allow an optional identifier to be passed to the Box object when it is created:
final fooBox = store.box<CommonEntity>(id:'foo')
final barBox = store.box<CommonEntity>(id:'bar')
Describe alternatives you've considered
One Box for all categories. This has few big downsides:
concurrent access via separate Isolates (or threads in future Dart version) is not efficient and performant due to need of lock mechanism / transactions
data size is larger (every entry would have to have an additional parameter, assigning it to a separate category)
accessing data from single category unnecessary complicates the query (this additional param have to be included).
This also slows down read, because whole data from different categories is kept in one place
Separate store for each category. This is overkill to have one store-one box setup
Create separate entity for each category. This is not possible, because amount of categories and categories themselves are dynamic
Additional context
Hive supports that:
The text was updated successfully, but these errors were encountered:
Thanks for reporting! ObjectBox does not really work well with a dynamic data model as its main purpose is to map a fixed data model to Dart classes.
Anyhow, option 1 is also what I would recommend on first thought. Obviously, there are up- and downsides which you seem to have analyzed pretty well (though I'm not sure how valid the concurrent access issue is). Based on that you will have to make a decision if this data model or even ObjectBox works for your use case.
Note: I labeled this issue with "more info required" so it will auto-close in a few days if there are no follow-up comments.
Is there an existing issue?
Use case
I have one entity used for dynamically created data categories. Each of these categories is independent and handled by a separate isolate.
Proposed solution
Allow an optional identifier to be passed to the Box object when it is created:
Describe alternatives you've considered
One Box for all categories. This has few big downsides:
This also slows down read, because whole data from different categories is kept in one place
Separate store for each category. This is overkill to have one store-one box setup
Create separate entity for each category. This is not possible, because amount of categories and categories themselves are dynamic
Additional context
Hive supports that:
The text was updated successfully, but these errors were encountered: