方法1-我们有一个具有相同代码库结构的不同工厂。但是不同的工厂正在存储不同的信息集,例如工厂A存储参数及其值,例如:Current = 110,工厂B存储不同的参数(例如: - Voltage = 10等)及其值。所以我们决定对不同的工厂使用不同的表方法以避免NULL值并将参数定义为列(例如: - Table_For_Factory_A列是Current,ParameterB等)这些参数的值在数据库中存储为Rows。如果有10个参数,那么一行将使用其值插入数据库。
方法2-现在,我们正在看到一种与我们的团队成员不同的方法,即为工厂保留一个名为(工厂名称)的差异列的大表,并将参数及其值存储在一个表中作为行。那么,如果一个工厂有10个参数,那么将10个参数及其值作为行插入到表中指数增长的表中。
例如: - 表列是参数,值,FactoryName,...)
请建议哪种方法更好以及为什么。我们认为保持表更小和最小插入将夸大数据库服务器上的性能和负载。同样在方法2中,参数名称在每次用户更新或保存时都会重复,这与标准化不一样。请帮助我们决定方法。
答案 0 :(得分:-1)
factories table
---------------
id
name
...
parameters table
----------------
id
name
...
factory_values table
--------------------
factory_id
parameter_id
value