# Best practice on Collection object / Collecting event Attributes?

**URL:** <https://speciforum.org/t/best-practice-on-collection-object-collecting-event-attributes/1759>\
**Category:** Get Help\
**Created:** [May 23, 2024, 2:58pm UTC](https://speciforum.org/t/best-practice-on-collection-object-collecting-event-attributes/1759 "2024-05-23T14:58:18Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![pverley](https://yyz1.discourse-cdn.com/flex029/user_avatar/speciforum.org/pverley/32/1413_2.png) [@pverley](https://speciforum.org/u/pverley)\
**Post date:** [May 23, 2024, 2:58pm UTC](https://speciforum.org/t/best-practice-on-collection-object-collecting-event-attributes/1759/1 "2024-05-23T14:58:18Z")

</div>

Hi there,

Were about to inject some collection object attributes and collecting event attributes to existing collection objects and collecting events.

I see in the schema that Specify 5 came along with dedicated attributes tables with a few predefined text, integer, float, boolean attributes. E.g. [Collecting Event Attribute](https://files.specifysoftware.org/schema/version/2.10/#collectingeventattribute) or [Collection Object Attribute](https://files.specifysoftware.org/schema/version/2.10/#collectionobjectattribute).

Specify 6 offers a greater flexibility with the new tables `collectionobjectattr` and `collectingeventattr` associated with a custom definition `attributedef`.

**Question** : should we use the Specify 6 tables by default ? Or can we still use the Specify 5 tables if the predefined attributes are more than enough for our needs ?

**Corollary question** : could Specify 5 tables `collectingeventattribute` and `collectionobjectattribute` be marked as deprecated and removed from the schema in future release?

A [jan 2023 post said](https://speciforum.org/t/how-are-the-collection-attribute-table-and-the-collection-object-table-linked/1017/3) at the time that:

> The `CollectionObjectAttrs` relationship and table are not meant to be used at this time. You can however use the `CollectionObjectAttribute` relationship and table!

Still relevant?

Thanks for the tips,  
Philippe V.

---

<div class="post-metadata">

**Author:** ![Grant](https://yyz1.discourse-cdn.com/flex029/user_avatar/speciforum.org/grant/32/4255_2.png) [@Grant](https://speciforum.org/u/Grant)\
**Post date:** [June 17, 2024, 7:18pm UTC](https://speciforum.org/t/best-practice-on-collection-object-collecting-event-attributes/1759/2 "2024-06-17T19:18:29Z")

</div>

Hi Philippe,

Thanks for reaching out!

Regarding your question, we recommend using the “Specify 5” tables, `collectionobjectattribute` and `collectingeventattribute`, by default. These tables are the ones we currently support and encourage users to use despite the Specify 6 tables, `collectionobjectattr` and `collectingeventattr`, being included in the database.

These `*attr` tables were part of an earlier plan (\>15 years ago) that was never fully developed. We discourage using these tables and instead point users to the `*attribute` tables for their needs.

Regarding your corollary question, we may eventually mark the `*attr` tables as deprecated and remove them from the schema in a future release. However, they remain in the current version, and we have no plans to remove them at this time. The `*attribute` tables, however, are here to stay.

If you require a one-to-many relationship, we recommend using the `*property` tables, such as `collectionobjectproperty` and `preparationproperty`, which are designed for such cases.

The guidance to use the `collectionobjectattribute` relationship and table still stands!

---

<div class="post-metadata">

**Author:** ![Marion](https://avatars.discourse-cdn.com/v4/letter/m/48db29/32.png) [@Marion](https://speciforum.org/u/Marion)\
**Post date:** [July 9, 2025, 12:33pm UTC](https://speciforum.org/t/best-practice-on-collection-object-collecting-event-attributes/1759/3 "2025-07-09T12:33:40Z")

</div>

I have a question, and I’ll try to be as precise as possible as it’s not easy to describe.

Is it possible to use the Collecting Event Attribute table as a many-to-one relationship, or is its behavior the same as the Collecting Object Attribute table?

Or is it better to use another table with a many-to-one relationship, such as Collecting Trip, to really have a Collecting Event grouping?

Because when you use the Collection Object Attribute table, during mass integration it automatically creates a one-to-one relationship with the Collection Object (and not many-to-one).

I hope my explanation is clear. Thank you in advance for your help.

---

<div class="post-metadata">

**Author:** ![Grant](https://yyz1.discourse-cdn.com/flex029/user_avatar/speciforum.org/grant/32/4255_2.png) [@Grant](https://speciforum.org/u/Grant)\
**Post date:** [July 9, 2025, 9:00pm UTC](https://speciforum.org/t/best-practice-on-collection-object-collecting-event-attributes/1759/4 "2025-07-09T21:00:32Z")

</div>

Hi @Marion,

The Collecting Event Attribute table has the same behavior as the Collection Object Attribute table, meaning the software treats it as a `one-to-one` rather than a `many-to-one` despite the data model and database technically supporting that relationship.

Collecting Trip is designed specifically for grouping Collecting Event records. If that is your goal, I highly recommend pursuing that option!

---

<div class="post-metadata">

**Author:** ![Grant](https://yyz1.discourse-cdn.com/flex029/user_avatar/speciforum.org/grant/32/4255_2.png) [@Grant](https://speciforum.org/u/Grant)\
**Post date:** [July 14, 2025, 1:00pm UTC](https://speciforum.org/t/best-practice-on-collection-object-collecting-event-attributes/1759/5 "2025-07-14T13:00:34Z")

</div>

Closed on July 14, 2025, 1:00pm UTC

This topic was automatically closed after 4 days. New replies are no longer allowed.
