存储id';的数组/元组的正确方法是什么;在SQL Server中的列中
我正在重新设计一个本地IP管理站点,需要一些帮助。当前,存在与某个子网ID关联的外键建筑ID,以便客户端知道子网所在的建筑。然而,出现的一个问题是,一个子网可能被分割到多个建筑物中。现在,子网到构建模式不再适用,我对正确的管理方法感到困惑 一个立即浮现在脑海中并且看起来很糟糕的选项是将building id字段更改为一个逗号分隔的building id字符串。它很快而且有效,但它给我一种不好的感觉 我想到的另一个想法是创建BuildingIDTuple表,其中可能存在多行将子网id映射到buildingid存储id';的数组/元组的正确方法是什么;在SQL Server中的列中,sql,sql-server,arrays,Sql,Sql Server,Arrays,我正在重新设计一个本地IP管理站点,需要一些帮助。当前,存在与某个子网ID关联的外键建筑ID,以便客户端知道子网所在的建筑。然而,出现的一个问题是,一个子网可能被分割到多个建筑物中。现在,子网到构建模式不再适用,我对正确的管理方法感到困惑 一个立即浮现在脑海中并且看起来很糟糕的选项是将building id字段更改为一个逗号分隔的building id字符串。它很快而且有效,但它给我一种不好的感觉 我想到的另一个想法是创建BuildingIDTuple表,其中可能存在多行将子网id映射到buil
subnet id | building id
------------------------
1 | 2
1 | 3
这种方法看起来更干净,更经得起未来的考验,但我也可以想象sql查询会带来很多麻烦
我认为理想的方法是在子网表中有一个建筑ID数组,但我认为这些不存在
那么,设计我正在做的事情的最佳方式是什么?任何帮助都将不胜感激 切勿在单个数据库列中存储一组值!!将它们拆分为一个新表,每个值作为一行!!否则,您将成为每次查询CSV值时将其拆分出来的奴隶。您的
BuildingIDTuple
表就是一条出路。查询并不困难,但您需要支持每个子网可能的多行提交。只需创建额外的表,所需的连接就不会那么复杂
解析逗号分隔的列表或其他任何东西都会让你头疼。我就是这么想的,但你们已经消除了所有疑问。谢谢大家!!