Click here to Skip to main content
15,884,472 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more: , +
Could this design solution be solved by Entity Framework?

An app named "car parts" v1.0 has one user and incorporates a relational database with strongly typed columns for each of the 10 car parts that applies to the user's vehicle data.

The data is very searchable since it is in an indexed table.

Version 2.0 will have multiple users with different vehicles unknown at the time of release.

Following with this strong typed column model for each conceivable part for each new user and new car the data might have different names. Following along the relational strong typed column database design model for this new version brings up various design choices.

One approach might be to abandon strong typed columns. Another might be to attempt to create generic columns and use abstracted mapping tables to post-fit a new car part schema. Using the database to search the data seems to be a highly desired feature so that maintaining the data mapping in code initially appears less desirable although I suppose this is where LINQ comes in.

My questions are:
What does entity framework offer in this type of problem domain.
Or what other solutions might apply.
Posted
Updated 21-Apr-14 2:23am
v2
Comments
Sergey Alexandrovich Kryukov 21-Apr-14 10:01am    
Not quite clear. Is that the problem of your database schema which has fixed names of the file parts, that is, some fixed classifiers? And if such thing is a part of the schema, not database (part of metadata, not data), people won't be able to introduce new type of the part. Is that the problem?
—SA

1 solution

Thanks you Sergey, it turns out that my question is about hybrid EAV patterns with SQL Server on which I'd appreciate any further input.
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900