数据库存储工程项目的不同对象类型:电机、电缆、泵、传感器等。
我们正在讨论是否为每种对象类型使用不同的表? (成堆的表格,当我们想要添加一个新的对象类型时会很痛苦——这会时不时发生......)
或者,正如我们目前所做的那样,我们是否应该有一个存储对象类型(ID、名称)的表和另一个存储每个对象类型可能属性的表,以及另一个存储每个属性类型的每个属性值的表? (真正的 PITA,但灵活。)
有人做过类似的事情吗?要考虑的要点?执行?
最佳答案
如果你能拿到一份 Patterns of Enterprise Application Architecture (福勒)看看Object-Relational Structural Patterns ;每种方法都有优点和缺点,根据您特定项目的上下文,答案会有所不同。
具体来说:
Single Table Inheritance
Class Table Inheritance
Concrete Table Inheritance
Serialized LOB (如果您考虑这种模式,还可以考虑使用 NoSQL 数据存储而不是 RDBMS)
您需要回答的最大问题是关系数据库是否是适合您数据的数据存储。您只是在寻找存储数据的地方吗?您会使用来自不同对象的相互关联的数据吗?使用一个很棒的序列化框架(如 Kryo )可能就足够了 Serialized LOB并存储在标准列中搜索或关联关系所需的元数据。
关于sql - 我想在 SQL 数据库中存储许多对象类型。我应该为每种对象类型使用不同的表吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15396514/