If your use case is indeed to share data across, then a custom table prefix (xPDO::TABLE_PREFIX) is indeed perfect, to illustrate it’s separate and access it the same way in all sites in the same database.
In all other use cases, my experience is that a custom table prefix (xPDO::TABLE_PREFIX) only makes things unnecessarily harder, like having to pass the prefix everywhere you initialise the model.
And if you’re wondering why I keep referring to xPDO::TABLE_PREFIX: it’s still a good idea to add some kind of prefix to make sure your table names are unique, for example <object name="SomeCategory" table="mycomponent_category">
: that mycomponent_
prefix there is always a good idea to avoid running into conflicts. Just don’t specify it as xPDO::TABLE_PREFIX
unless it is meant to be used outside of MODX.