I have an application that supports multiple implementations of it with a particular concrete data class being used. Each implementation has approximately 30000 instances of this data class. Is it better to use just one table for all implementations and have a column in the table that indicates the implementation or create a separate table per implementation and thus a different data class per implementation? A different data class per implementation means to me having to support different code to access this table to a certain extent at least I would think to create instances though querying the instances could possibly be performed with a single report definition set to look at implementation.
***Edited by Moderator: Lochan to update platform capability tags***
If you use one table for all implementations then initially it's performance will be good but it would impact the application's performance once it keeps on growing.
If you have a requirement to keep only latest data(1 month old) then this approach sounds good but if not then I think it will hurt your application's performance since it has around 30000 instance. Please let me know if you have any query.