Thread: Using "object orientated" tables?
Hi, I was wondering what the community thought of using table inheritance in PostgreSQL? Is it considered bad practice thesedays? Basically, I have a users table and every user has a unique, not null UUID which is used as the primary key. There are onlythree columns on the table. User ID, Username, Email. Having said that I'll have to store data about them which I don't want to do in one massive table as it would be ugly ashell. So what I want is my main user's table to stick to three columns and then sub-tables which inherit from it to addtheir own column? So for instance I might want to store an account balance for people making money on my site. Hopefully, I've managed to explain what I mean properly. If you need any extra information then let me. Simon.
Attachment
On Tue, May 10, 2022 at 6:33 PM Simon Connah <simon.n.connah@protonmail.com> wrote:
Hi,
I was wondering what the community thought of using table inheritance in PostgreSQL? Is it considered bad practice these days?
Basically, I have a users table and every user has a unique, not null UUID which is used as the primary key. There are only three columns on the table. User ID, Username, Email.
Having said that I'll have to store data about them which I don't want to do in one massive table as it would be ugly as hell. So what I want is my main user's table to stick to three columns and then sub-tables which inherit from it to add their own column? So for instance I might want to store an account balance for people making money on my site.
Hopefully, I've managed to explain what I mean properly. If you need any extra information then let me.
I wouldn't use inheritance, especially since I do not want to carry around copies of Username and Email. Having a "core data" users table then adding additional one-to-one related tables based upon application needs is quite common.
David J.
Simon Connah <simon.n.connah@protonmail.com> writes: > I was wondering what the community thought of using table inheritance in PostgreSQL? Is it considered bad practice thesedays? Mmm ... not if the various caveats[1] don't bother you. The biggest stumbling block for most people, I think, is that you can't have foreign keys that reference the whole inheritance hierarchy. regards, tom lane [1] https://www.postgresql.org/docs/current/ddl-inherit.html#DDL-INHERIT-CAVEATS
------- Original Message -------
On Wednesday, May 11th, 2022 at 02:43, David G. Johnston <david.g.johnston@gmail.com> wrote:
On Tue, May 10, 2022 at 6:33 PM Simon Connah <simon.n.connah@protonmail.com> wrote:Hi,
I was wondering what the community thought of using table inheritance in PostgreSQL? Is it considered bad practice these days?
Basically, I have a users table and every user has a unique, not null UUID which is used as the primary key. There are only three columns on the table. User ID, Username, Email.
Having said that I'll have to store data about them which I don't want to do in one massive table as it would be ugly as hell. So what I want is my main user's table to stick to three columns and then sub-tables which inherit from it to add their own column? So for instance I might want to store an account balance for people making money on my site.
Hopefully, I've managed to explain what I mean properly. If you need any extra information then let me.I wouldn't use inheritance, especially since I do not want to carry around copies of Username and Email. Having a "core data" users table then adding additional one-to-one related tables based upon application needs is quite common.David J.
Thank you for your reply. That makes more sense. I'll eventually get the hang of things!
Simon.
Attachment
------- Original Message ------- On Wednesday, May 11th, 2022 at 02:50, Tom Lane <tgl@sss.pgh.pa.us> wrote: > > > Simon Connah simon.n.connah@protonmail.com writes: > > > I was wondering what the community thought of using table inheritance in PostgreSQL? Is it considered bad practice thesedays? > > > Mmm ... not if the various caveats[1] don't bother you. The biggest > stumbling block for most people, I think, is that you can't have > foreign keys that reference the whole inheritance hierarchy. > > regards, tom lane > > [1] https://www.postgresql.org/docs/current/ddl-inherit.html#DDL-INHERIT-CAVEATS Thank you. I'll be sure to read that. Simon.
Attachment
Just to pile on, this sounds like a normalization problem ... https://docs.microsoft.com/en-us/office/troubleshoot/access/database-normalization-description https://en.wikipedia.org/wiki/Database_normalization -----Original Message----- From: Simon Connah <simon.n.connah@protonmail.com> Sent: Tuesday, May 10, 2022 19:33 To: pgsql-novice@lists.postgresql.org Subject: Using "object orientated" tables? Hi, I was wondering what the community thought of using table inheritance in PostgreSQL? Is it considered bad practice thesedays? Basically, I have a users table and every user has a unique, not null UUID which is used as the primary key. There are onlythree columns on the table. User ID, Username, Email. Having said that I'll have to store data about them which I don't want to do in one massive table as it would be ugly ashell. So what I want is my main user's table to stick to three columns and then sub-tables which inherit from it to addtheir own column? So for instance I might want to store an account balance for people making money on my site. Hopefully, I've managed to explain what I mean properly. If you need any extra information then let me. Simon.