• [font="Verdana"]Flo raises some very good points.

    If your list of shapes is finite and known in advance, then model them individually. You will get better performance, and it's easier to verify that the individual shape data is correct (data integrity).

    If your list of shapes is unknown and flexibility is a requirement, then modelling "extended attributes" is a reasonable solution. I would also consider adding to that design some sort of encoded "rule" to ensure that the data that makes up that shape is completed correctly so you can ensure that data integrity is maintained.

    Also, make sure you do not make the mistake of doing the following:

    1. using a SQLVariant to encode attribute values

    2. encoding all attribute values as strings

    Use the correct data types! Otherwise performance pretty much goes right out the window.

    Good luck. 😀

    [/font]