c# - 我将如何在一列数据库设计中创建多个类型ID

标签 c# sql sql-server asp.net-mvc linq

我正在设计 SQL Server 数据库,我必须在一列中创建多个 FK

所以我有这些表并在一个表中创建一个菜单

Table 1             Table 2       Table 3
| Pages            | Jobs         | News
|------------      |---------     |-----------
| Pageid           | Jobid        | NewsId
| PageName         | JobName      | NewsTitle
| MenuName         | MenuName     | MenuName       

我的目标是在一列中引用这些表格

我有一个来自此场景的表格

| MenuGroup
|------------       
| menuGroupId
| MenuName
| RecordeId

那么我将如何实现规范化数据库设计?

最佳答案

Sol 1(固定列数):
这是最标准、最规范的解决方案。您可以按照 @Tim 的建议创建一个包含可空列的新表

| JoiningTable
|------------      
| Id
| PageId
| JobId
| NewsId

Sol2:(动态列数):
虽然我不认为这是一种好方法,因为这里丢失了引用完整性,但在动态列数的情况下,除了这个之外我没有任何其他解决方案。

Type:
|------------      
| TypeId
| Name


JoiningTable
|------------      
| Id
| JoiningId
| TypeId (news,job,pages etc etc)

您可以通过将 中的 TypeId 替换为 type 字段,将这两个表压缩为一个连接表.

NoSQl 也可能是一个解决方案,但我没有使用 NOSQL 的经验,所以我无法向您推荐任何相关内容。

关于c# - 我将如何在一列数据库设计中创建多个类型ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32844372/

相关文章:

sql - 数据库模式 SQL 行与列

sql - scala中的动态where条件生成

c# - XPS 文件中打印的重复图像

c# - 如何以编程方式即时更改网站默认文档

mysql - 不同表上的简单触发器更新

sql - 一张 Microsoft SQL 表可以有多个主键吗?

sql - 与日历比较查找缺失的日期

c# - 空间winform控件

c# - Paypal 验证失败,无效

sql-server - 在 SQL Server 中存储图像?