Iām talking about any array, regardless of how it was created. A single value is a single value. An array is a collection of multiple single values. There are several different ways to end up with an array, but they are pretty easy to recognize in the data editor because each value is contained in separate bubbles, whereas a single value would not be in a bubble.
I donāt know enough about your project to give you step by step advice, but, just speaking about client projects, the goal would be to create a comma delimited list of project IDās in the client row. A comma delimited list is simply a single text string of multiple values separated by a comma. If you use a Split Text column pointing to that comma delimited list, then you can convert it to an array. Then you can create a relation to link that array to a projects table. That relation can be displayed as an inline list on the client details page. All of that is done with a single Basic Text column, a Split Text column, and a Relation column.
How that basic text column gets populated with a comma delimited list of projects can vary depending on your particular app, and how you plan to add a project to a client. It could be a simple as a multi-select choice component that lists all projects and writes to the basic text column in the client details row. Or it could be much more elaborate depending on how you want projects to be added.
As far as Activities, I assume you mean activities per client per project. That would involve multidimensional arrays, which can add another ādimensionā of complexity. It is possible to technically store arrays within arrays, by using different delimiters between projects and between activities. The better way would probably be to build a JSON object using templates and joined lists, and then querying what you need out of that JSON as needed. Inserting or removing data from within an array of JSON object can become quite complicated.
Like I said. We are talking about very high level theories here. Itās all possible with some work, but the deeper we discuss it, we start getting into hundreds of possible different tangents to achieve the result you want. We could discuss it until we turn blue. Iād stay start with the basics I provided above to store a list of projects in a client row. Figure out how you want populate that comma delimited list of projects. Start there before trying to envision a complete rewrite of your project.
Storing projects is easy, because I assume you would only be storing a value to link the client in the client table to the project in the project table. Storing Activities could be a whole other thing since it seems like you want to use this as a table replacement in place of a separate Activities table, and especially when you are talking about 1000ās of activities for a client, then you are talking about quite a large set of data in a single cell. How much data is contained in an āactivityā??? Like whatās been discussed before, you start to run to performance issues when you store to much in a cell.
I donāt have a single straight forward answer for you. Weāre talking about a very grey area as far as whatās possible, how well glide could handle it, what you want to store in a single cell, and how easy it is to add, edit, delete and unpack that data into a usable form. I think youāre just gonna have to try different things and see what works or doesnāt work. If you get stuck on something specific, Iām sure we can help, but at this point, we are just talking about theories, and talking about something that could have 100 different solutions, and since you are the only one that truly knows your own app, I think some of those solutions can only be determined by you.