[Pulp-dev] 'id' versus 'pulp_id' on Content

Jeff Ortel jortel at redhat.com
Mon Aug 13 14:38:50 UTC 2018



On 08/07/2018 11:47 AM, Jeff Ortel wrote:
> 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:
>
> _id
> _created
> _last_updated

I'm convinced that all tables should have _created.  Knowing when 
something is created helps fulfill many common use cases and is 
essential for troubleshooting.  I am open to including _last_updated 
only on mutable entities .  Depending on the number (ratio) of 
mutable/immutable entities, we could support this with either an 
additional Model class eg: MutableModel or just add _last_updated on 
concrete models.  Either way, the column (attribute) needs to be named 
consistently.

>
> _href
> _added_href
> _removed_href
> _content_href
>
> 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.
>
> Thoughts?

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/pulp-dev/attachments/20180813/c2fd1cb6/attachment.htm>


More information about the Pulp-dev mailing list