There are many ways of doing so depending on every how many weeks you want people to have met each other.
Group Theory is certainly a powerful tool in solving your problem unfortunately I forgot most of it. This said here's a way of doing it, although I'm sure you can do better :
Say you name people from $1-24$ and you have $3$ tables. First make committees of $4$ people so you will have $5$ of them. This reduces the problem down to $6$ groups of people, call them $G_{11}, ..., G_{16}$, and $3$ tables which is easy to solve. Each group has another $5$ group to meet so doable in $5$ weeks.
The drawback from this method is that you get groups of $4$ people always staying together for $5$ consecutive weeks. So after $5$ weeks you can change these groups and make another $6$ groups of $4$ people to circle around as explained before. Call these groups $G_{21}, ..., G_{26}$. After another $5$ weeks do it again and call the groups $G_{31}, ..., G_{36}$ and so on.
If you think it is a bad idea for people to be in groups of $4$ for $5$ consecutive weeks then alternate the weeks.
Say you have the planning for $5$ consecutive sets of $5$ weeks, then at table one you can have groups $G_{11}$ and $G_{12}$ the first week, groups $G_{21}$ and $G_{22}$ the second week, ..., up to the fifth week where you get groups $G_{51}$ and $G_{52}$.
Then alternate the groups on the first table to be $G_{11}$ and $G_{13}$ and do it again.
This way should keep you busy for $25$ weeks. Once this is done, shuffle randomly the number you initially assigned to people and do it all over again!
There is no one best way of doing it, there are a lot so by all means perhaps take ideas from what I gave but invent something else.