数据库设计有关问题,

数据库设计问题,在线等,急急急
有这样些的类别表

Java code

3D音效芯片  有这些字段:器件编号,规格书,描述,输入电压范围(伏),3D音效引擎,5段喇叭频率补偿调整

电源适配器   有这些字段:器件编号,类别,AC插脚规格,输入电压范围(伏),输入电源工作频率(赫兹),输出电压典型值(伏)

固态电容  有这些字段:器件编号,规格书,描述,额定电压(伏.直流),额定电容值(法拉),最大直流串联等效电阻(毫欧)



这些表都是类别表,但是每个表的字段不一样
像这样的表有很多个,每个表的字段个数不确定的,


大神们有什么方法能把这些表关联起来,就像获得主建表,获得主表就能获得这些表

我的想法:
可能不合理
有一个表 存这些表的名字,然后再根据这些表的名字查询这个表的数据,
还有一个方法是:这些表的名称如: tableTyle1,tableTyle2,tableTyle3,再用一个表来存像这样的表有多少个,用代码拼sql

我用的是Hibernate
大神们有什么好的方法啊
在线等,一大早就来发帖了,可怜可怜我吧给我个答案

------解决方案--------------------
你想把若干张表全部合并成一张表么?

这个难度比较大,一般三种做法:
1、不固定列名的横表,比如字段是: 器件编号,器件类别,字段1,字段2,字段3,字段4,...... 具体每个字段的真实含义则需要根据器件类别来决定;
——这种做法主要复杂度在于需要另外组织数据字典来维护字段含义,导致通用的数据访问组件会不适用。
2、属性表(或称垂直表),字段结构是:器件编号,属性名,属性值;其中器件编号和属性名是联合组建;
——这种做法主要问题是每次查询一个器件,要查询出N行数据,性能较为低下。
3、XML表,字段结构是:器件编号,器件类别,XML;也即除了公共属性会进入字段外,其它信息直接组装为XML放入Blob字段;
——这种做法的主要问题是如果做过滤查询(列表查询)时需要用特殊属性,比如:电压,那么XML是无法直接写入Where条件的;所以抽取公共属性很重要。

所以大多数情况下仍然用 主表+明细表 的做法,比如:
主表保存公共属性(因为仍然主要是为了提供过滤查询和某些统计):器件编号,器件类别,... 
明细表保存所有信息(命名一般采用‘明细表_类别ID’,便于查找):器件编号,器件类别,AC插脚规格,输入电压

看楼主有啥问题可以继续探讨。
------解决方案--------------------
如果你所说的 筛选、排序 会基于不同类型器件的专有属性的话。

那么用“主表+明细表”的做法是比较灵活的。
------解决方案--------------------
2、属性表(或称垂直表),字段结构是:器件编号,属性名,属性值;其中器件编号和属性名是联合组建;
——这种做法主要问题是每次查询一个器件,要查询出N行数据,性能较为低下。

俺就想出这一个方法,还被#2楼抢先了,呜呜呜。。。
------解决方案--------------------
不能仅凭ID获得明细表,需要用 器件类别 字段。

因为明细表命名一般是:‘明细表_类别ID’

当然,有时候设计时会将 主表的ID 带上特定语义,比如构成为:类别_日期_流水号 ,这样便于从ID中获取额外信息,但是这将带来生成ID的复杂度问题。