I have a few questions/issues. I have googled and read a lot. I would've found the solutions by trial and error, but using this functionality has an enormous impact on the server I'm using. It will take ages and too much frustration to try different methods. Hence the first issue.
1. From the point where I change the table property Supports Inheritance to Yes any development related to the table takes a significant performance hit. Adding a field to the table or changing a property takes seconds. This snowballs further for form datasources of the table type - it takes minutes and sometimes never to change some property. We have our own servers and yes they aren't the best, but everything except this works fine and reasonably quickly.
2. Abstract. Paraphrasing https://msdn.microsoft.com/en-us/library/gg881064.aspx "Abstract no - derived tables do not necessarily have a corresponding record of the base table." Not very helpful. I assume that Abstract No means the table exists in the database and Abstract Yes means the table does not. An abstract table cannot contain records, meaning a record must be defined as a descendant and a normal base table can have a record that exists without any descendants.
3. Duplicate fields. I learned the hard way that it creates issues if different descendants have the same field name. But this is sometimes necessary. I mean a base table Animal should not have a field Wings, but both derived tables Duck and Ostrich should have the field. Unless you want to build the whole animal kingdom, which no-one has time for. Is it allowed or not? VS didn't prohibit me from creating the fields on table level, but still - the errors.
4. Modified By, Modified Date. Also applies to Created By and Created Date. I want to store the modifications. So I set the properties to Yes on the base table and didn't bother on the descendants, in other words they are still No. Is that correct?
5. Foreign keys. My abstract base table B has a foreign key relation to some table F. B has descendants T and U. I have a details master form where I want to display T and U separately. Table F is the root datasource. I want to skip the dialog where you select the table type to insert. So I dragged table T and U onto the form and set Join Source to F. The errors were more than biblical Israelites. For example table T has a real field. The form displays table F's RecId in the real field. Should this have worked correctly or am I supposed to link the datasource in form code?
I apologise for the essay.
Thanks for reading