database – 数据库表的泛化与专业化

当我想设计模拟有限父子关系的数据库表时,例如,计算机作为父项,以及作为子项的内部组件;或者是一个简单的组织层次结构,我经常被撕裂使用的方法

>一种’专用表’方法,我在其中为每个可能的实体创建一个表.在计算机组件示例中,我将有一个Computer表和一个Component表,在Component表中将ComputerID作为FK引用回Computer.ComputerID.
要么
>一种通用表方法,其中我有一个名为Component的表表,ComponentID为PK,而ParentComponentID为FK,引用其父组件ID.

解决方法

我在大多数情况下选择选项1超过2的原因是因为更容易将我的父行拉出数据库.否则,您必须编写sql语句,以便从表中获取具有子行的行,但仅限于那些行.它变得很乱.

如果您正在使用任何常见的关系数据库,那么请按照它们的设计方式使用它们.

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 'EastRiver' 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...