Understanding phpList Database Use of Tables Through a Visual Schema

Tags: #<Tag:0x00007f891cc8da50>

I’m a visual learner. I’m having trouble understanding how the tables in phpList database connect. If I could see how it all connects, I’d be able to visualized where the data that I want to collect fits in. That would be a big help in understanding how to query for the answers I need (or might need in the future).

I did download a schema of my DB through PHPMyAdmin, but there wasn’t any connection lines to the tables displayed. I looked at “Verify the DB Structure” through the phpList dashboard, but it is a list of tables, not a graphic showing the connections.

Are the tables listed from most used to least used in the Verified view?

Is there an infographic of the phpList DB that shows the table relations from a fresh install? If so, may we have it posted?

By looking at the tables, I see that Attributes I set show as individual tables in the DB. I thought Attributes were additional columns in a subscriber’s profile.

Any help would be greatly appreciated

I have not seen one but the name of a table usually indicates whether it is linking other tables, e.g. listuser or usermessage.

The user_attribute table has one row for each attribute that you create, such as Name or Country.

The user_user_attribute table has one row for each attribute/subscriber combination giving the value.
For text type attributes the value is held directly. but when an attribute has a fixed set of values, such as a select list, then another table is used to hold the set of possible values. That table name is listattr_xxx where xxx is held in the user_attribute table.