locked
Should the Parent content type and its custom child content type have the same setting for their fields RRS feed

  • Question

  • I am a bit confused about the relation between Parent and child content type.

    Now I want to create a new content type that have the Issue as its parent content type. So how I should be managing the two content types in the following scenarios:-

    1. If I want to add a new site column to the child content type, should I add it directly to the child content type or I should added to the parent content type?
    2. If I want to change the “Column Settings” for a field such as if it is optional, required, hidden should I do it at the parent or at the child content type.
    3. Let say I created 3 issue tracking lists based on the custom content type which i have created and which have the  Issue as it parent content type. Where each issue tracking list will have different values for the Priority site column. So is it a bad practice to modify the Priority values at each list level , where the Priority will have different values at each of the list levels ? Or it is better to create a new Priority site columns for each list. in other word should I always create new site columns or it is better to modify the same site column at the list level ?

    Can anyone advice ?

    Wednesday, May 13, 2015 11:57 AM

All replies

    1. Always make the changes to the child when adding new columns
    2. Changing a field to required, hidden, or optional should be made to the child.  In general other changes to existing fields should be avoided.
    3. To have different Priority values you should have 3 different child content types with 3 different priority site columns.  If you make the change directly in the list you will break the inheritance relationship and changes to the parent will not be applied in the future.

    Paul Stork SharePoint Server MVP
    Principal Architect: Blue Chip Consulting Group
    Blog: http://dontpapanic.com/blog
    Twitter: Follow @pstork
    Please remember to mark your question as "answered" if this solves your problem.

    Wednesday, May 13, 2015 12:07 PM
    1. Always make the changes to the child when adding new columns
    2. Changing a field to required, hidden, or optional should be made to the child.  In general other changes to existing fields should be avoided.
    3. To have different Priority values you should have 3 different child content types with 3 different priority site columns.  If you make the change directly in the list you will break the inheritance relationship and changes to the parent will not be applied in the future.

    Paul Stork SharePoint Server MVP
    Principal Architect: Blue Chip Consulting Group
    Blog: http://dontpapanic.com/blog
    Twitter: Follow @pstork
    Please remember to mark your question as "answered" if this solves your problem.

    thanks for the reply, but can you adivce more on these;

    >>Always make the changes to the child when adding new columns

    why i should not add site columns to the parent content type ?

    >>Changing a field to required, hidden, or optional should be made to the child.  In general other changes to existing >>fields should be avoided.

    can you adivce more on this ?

    >>To have different Priority values you should have 3 different child content types with 3 different priority site >>columns. 

    so you mean i need to create a new content type that have a new site column for each list, just because i have different values for the Priority field ???

    >>If you make the change directly in the list you will break the inheritance relationship and changes to the >>parent >>will not be applied in the future.

    from my own test if i make any changes to the list content type this will NOT stop the inheritance ,, because doing any changes to the site column or to the site content type will still be applied to the list content type and its fields , even if the list content type or the list columns have already being modified at the list level.. so not sure i got ur point ?


    • Edited by johnjohn11 Wednesday, May 13, 2015 12:42 PM
    Wednesday, May 13, 2015 12:39 PM
    1. because if you add a column to the parent it will be added to ALL the child content types of that parent.  Which is probably not what you want.
    2. same answer as #1
    3. Not sure what you mean.  For example, changing the name or default value of an existing field from the parent might get overridden if the parent is changed later.  
    4. Yes.  If you change the existing values in each list then you will disconnect the content type from the parent and future changes to the parent will be ignored.
    5. It depends on the change that is made.  But a lot of changes at the list level will make a copy of the site content type as a list content type.  At that point changes will no longer be applied.

    Paul Stork SharePoint Server MVP
    Principal Architect: Blue Chip Consulting Group
    Blog: http://dontpapanic.com/blog
    Twitter: Follow @pstork
    Please remember to mark your question as "answered" if this solves your problem.

    Wednesday, May 13, 2015 2:48 PM
    1. because if you add a column to the parent it will be added to ALL the child content types of that parent.  Which is probably not what you want.
    2. same answer as #1
    3. Not sure what you mean.  For example, changing the name or default value of an existing field from the parent might get overridden if the parent is changed later.  
    4. Yes.  If you change the existing values in each list then you will disconnect the content type from the parent and future changes to the parent will be ignored.
    5. It depends on the change that is made.  But a lot of changes at the list level will make a copy of the site content type as a list content type.  At that point changes will no longer be applied.

    Paul Stork SharePoint Server MVP
    Principal Architect: Blue Chip Consulting Group
    Blog: http://dontpapanic.com/blog
    Twitter: Follow @pstork
    Please remember to mark your question as "answered" if this solves your problem.


    regarding point 4&5 .. i tried changing the column values at the list level (such as adding new values inside a drop-down), or to chnage the column settings (required, optional) at the list content type level... but all of these changes will get overridden when updating the column at the site collection level or updating the parent content type ,, so not sure when the inheretance will be broken ?? seems it is very confusing  ??? as this is the first time i knew that the inheritance between child and its parent content type might get broken on some changes !!
    Wednesday, May 13, 2015 3:14 PM