I'm currently in the process of building a system that requires a very high degree of customization by its users. One of the big issues is that there will be many values that will be built into the system, but can be further extended by the users. An example would be company departments. The DB will have builtin or preset departments(Sales, Customer Service, etc...), a company may desire to also have a department "Assembly Line" or whatever. How would this be best represented? Should I use a one table approach along the lines of:CREATE TABLE Departments ( DepartmentID int, DepartmentName varchar(100), IsBuiltin bit, CompanyID int)
or would a two table approach be better, and just use UNION queries?CREATE TABLE Departments ( DepartmentID int, DepartmentName varchar(100),)CREATE TABLE CompanyDepartments ( DepartmentID int, DepartmentName varchar(100), CompanyID int)
That then brings up the business rule that a company should be able to ignore all builtin departments, and use only their own. That should be doable with another table such as IgnoredDepartments or some such.What are your guys' thoughts?Thanks,Steve