My client can add his own attributes so I create a table like this:

CREATE TABLE attr (
  id INT GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
  value VARCHAR
) 

Now I want that he can group some values together maybe you have a location and you set 5 attr toegther that you dont click everytime when you choose a location the same attr. You can select the group then all 5 attr/values are in there. So how I design this ? Or whats the best way to do this? Here is right now my example:

CREATE TABLE attr_groups (
   id INT GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
   name VARCHAR // he can say a group name like "Black clothes" or "White clothes",
)

CREATE TABLE attr (
  id INT GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
  group_id INT,
  value VARCHAR
) 

CREATE TABLE location (
   id INT GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
   attr_group_id INT REFERENCES attr_groups(id),
   name VARCHAR,
   start TIMESTAMP,
   end TIMESTAMP
)

Whats you advise ? What I am doing wrong or is that the right way ? I hope you can give me some tips