asp.net-mvc如何将创建一列数据库设计中的多个类型 id

发布时间: 2017/3/25 10:49:51
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我在设计 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

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

解决方法 1:

溶胶 1 (固定 no 的列):
这是最标准和归一化的解决方案。您可以创建新的表 nullable columns 如 @Tim 所建议的

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

Sol2: (列的动态 no):
虽然我认为没有一种好方法,因为 referential integrity 是丢在这里,但在动态的列数的情况下,我没有任何其他解决方案除了这篇。

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


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

您可以压缩这些 two 表到 one 通过替换 TypeIdtype 字段中 JoiningTable

NoSQl可能也是一个解决办法,但我没有任何经验的工作在 NOSQL 所以我不推荐你任何东西。

赞助商