Donna Kelly
New member
- Local time
- Today, 16:42
- Joined
- Jun 20, 2014
- Messages
- 9
Help with best practice design for a web database, please!
I have a 3NF logical design that looks like this:
Table Category. Fields CatID (PK), CatDesc
Table Range. Fields RangeID (PK), RangeDesc, CatID (FK)
Table Color. Fields ColID (PK), ColDesc
Table Product. Fields ProdID (PK), ProdDesc, RangeID (FK), ColID (FK)
There are three possible implementation models (physical table designs).
1. the 3NF design. Keep all as separate tables.
2. the 2NF design. Flatten the snowflake into a star by combining Category and Range with repeated Category per Range. This would result in a table like:
Table CatRange. Fields RangeID (PK), CatID, CatDesc, RangeDesc
3. the 1NF design aka "flat schema" aka flat table. This is sometimes used with tools like Excel PivotTables or QlikView to create fast-access in-memory data structures.
This completely denormalised design uses a single table. There are obviously no keys, no joins, and no lookups. Whilst it can be useful for pure analytical applications, it's a pig if any of the dimensions get updated. And in this kind of application, they will!
If this was SQL Server, I'd have no problems at all. But I haven't got a clue about how best to implement this in an Access 2010 web database. Fer gossake, even the 'Relationships' button in Database Tools is grayed out, so I can't even do joins. I'm thinking, that means I have to do Lookups. and in the 3NF physical design, that means Lookups of Lookups.
I built the 2NF design, and it's not very good. Maintenance of the Category and Range data is done with a single form, and the end user has to keep referential integrity in mind, rather than having the machine do it.
What I need from you guys is your thoughts and opinions, please. What's best practice here, and what are your recommendations? Most importantly, can you provide guidance regarding the steps required to implement lookups of lookups?
Cheers, Donna
I have a 3NF logical design that looks like this:
Table Category. Fields CatID (PK), CatDesc
Table Range. Fields RangeID (PK), RangeDesc, CatID (FK)
Table Color. Fields ColID (PK), ColDesc
Table Product. Fields ProdID (PK), ProdDesc, RangeID (FK), ColID (FK)
There are three possible implementation models (physical table designs).
1. the 3NF design. Keep all as separate tables.
2. the 2NF design. Flatten the snowflake into a star by combining Category and Range with repeated Category per Range. This would result in a table like:
Table CatRange. Fields RangeID (PK), CatID, CatDesc, RangeDesc
3. the 1NF design aka "flat schema" aka flat table. This is sometimes used with tools like Excel PivotTables or QlikView to create fast-access in-memory data structures.
This completely denormalised design uses a single table. There are obviously no keys, no joins, and no lookups. Whilst it can be useful for pure analytical applications, it's a pig if any of the dimensions get updated. And in this kind of application, they will!

If this was SQL Server, I'd have no problems at all. But I haven't got a clue about how best to implement this in an Access 2010 web database. Fer gossake, even the 'Relationships' button in Database Tools is grayed out, so I can't even do joins. I'm thinking, that means I have to do Lookups. and in the 3NF physical design, that means Lookups of Lookups.
I built the 2NF design, and it's not very good. Maintenance of the Category and Range data is done with a single form, and the end user has to keep referential integrity in mind, rather than having the machine do it.
What I need from you guys is your thoughts and opinions, please. What's best practice here, and what are your recommendations? Most importantly, can you provide guidance regarding the steps required to implement lookups of lookups?
Cheers, Donna