After long consideration, I have had a change of heart about this.
I think. In short, Pulp's data model has unique requirements that
make it acceptable to deviate from common convention regarding ID as
the PK. Mainly that the schema is extensible by plugin writers.
Given the plugin architecture, I think it's reasonable to think of
"core" fields like: ID, CREATED and LAST_MODIFIED as metadata.
Although, the ID is harder to fit in this semantic, I think it's
reasonable to do for consistency and to support the user query
use-case re: content having an natural ID attribute. Taking this
further, the href attributes could be though of in
the same category.|
With this in mind, I'm thinking that the leading underscore (_) could be used broadly to denote generated or metadata fields and the following would be reasonable:
I highly value consistency so this applies to the entire schema.
This will introduce a few fairly odd things into the schema that I suppose we can live with.
- Two fields on some tables named (ID , _ID). To mitigate confusion, we should serialize the pk and not _id. This will also be consistent with pk parameters passed in.
- I expect django will generate foreign key fields with double understores. Eg: content__id
I'm still -1 for using a pulp_ prefix.
On 06/18/2018 01:15 PM, Daniel Alley wrote: