Database design – can i do a conditional join or conditional select based on the data in a table_ – database administrators stack exchange

What you really want is a table full of nullable fields, EAV is hard to get right, and with EAV you literally need three columns, not 6. Database processing It would be much easier to just keep adding nullable columns for your needs at this time.

So there should not be a performance and scalability issue having a table with 20 or 30 columns? What am I trading off when I make a 30 column table?

What are you trading off? Nothing really. Database xcode Performance and scalability issues are much harder to interpret and diagnose with an EAV format over the traditional wide-table format. Database administrator salary You really only end up with tables with lots of null values that you just need good indexes to find the things you want quickly, which is a lot easier than done with an EAV.

Running 1 EAV table per data type is just as horrid as the five+ column design you were describing before from a perf and maint standpoint.

Data recovery iphone 4s You really don’t want to do this. Fundamentals of database systems You really want to just add a lot of nullable columns to one wide table. Database er diagram You’re shooting yourself in the foot and asking us how to bandage it before you begin. Data recovery tools linux EAV is not the design pattern you want right now, in part because you don’t understand how the model works. Data recovery wizard for mac Model your business data, then model your database.

In your case, you want a table for motherboards with vendor, board name/model number, etc. Database etl I’ve modeled a simple table below. Database lock EAV would then be used with this table to model things like “link for driver downloads” which are very rarely going to be needed. Data recovery reviews Think about the main table as being searching details, and the EAV being details that you only need when you show a secondary tab on the UI. Database d b create table motherboards (

, cpu_socket_type not null — can be an int lookup to another table or a text field, I leave this to you based on the schema you want, but either is acceptable, as is an int with an in-app enum lookup

, ram_socket_count tinyint not null default 1 — here’s where things get tricky, it’s possible on some systems (enterprise grade) to have different RAM sockets for different reasons, but we skip that because that’s a lot of detail. Ads b database Wait till you have to cross that bridge, mkay?

, northbridge_chipset varchar(100) not null — this makes the most sense to me, but see the cpu_socket_type comment. Database denormalization There are a handful of common ones, so text may be easier to deal with.

, rear_port_matrix — some set of fields to indicate what is on the back panel where people can have access. Pokemon y database I would probably either make up a standard “dictionary” of these and do it like an enum/lookup table, or list one per port. Data recovery icon Where do you put parallel ports on this lookup list? How many USB are exposed via the backplate? How many USB are exposed on headers on the motherboard?

I have some other suggestions, if you are just hell-bent on using an EAV for tracking details, such as moving all of those socket bits to an EAV, but trust me when I tell you that will become much more tedious than what I gave you. Fda 510 k database This format lets you search for the details you want (like in a picker UI) and lets you build indexes for commonly searched features once you get a very large table. Google hacking database The only indexes I would suggest are on the board name, the socket type and count, and the ID for lookups. Database concepts 6th edition pdf Everything else I would index after putting the system under load with actual data.

The EAV model really doesn’t fit this business model right now, so without seeing an actual EAV schema intention, I would recommend you approach it from the style I’ve outlined above, and ignore the column widths.

The approach I’ve outlined above is about 500 bytes per record so far, which is relatively tiny. Data recovery utility The indexes alone would be hard to maintain.

I hope this helps you reconsider the approach to your problem design, and we as always as a community are happy to help you flesh out the details.