我正在为一个网站设计一个数据库,该网站至少会有4种不同的对象类型(文章,博客文章,照片,故事),每个对象都有不同的数据要求来保证自己的表格.我们希望用户能够发布任何这些类型的评论.评论的数据要求很简单,与评论所关注的事物类型无关(即只是评论主体和作者的电子邮件).
我想避免为注释创建和管理4个以上的单独表的冗余,所以我希望能够在一个表中保存所有注释,可能通过2列指定关系:一个用于指定父实体和一个对于父行Id.
但是我不明白我是如何实现外键的,因为外键在2和2个表之间建立关系(对吗?).
因此,考虑到所有这些,最好的方法是什么?
我正在学习如何将实体关系图解释为SQL DDL语句,我对符号的差异感到困惑.考虑一个不相交的关系,如下图所示:

这会表示为:
我认为这些是写这种关系的其他方式:

我正在寻找一个明确的解释,说明每个图表最终会有哪些表格.
我在关系数据库中有以下表:
[Sensor]
LocationId [PK / FK -> Location]
SensorNo [PK]
[AnalogSensor]
LocationId [PK/FK -> Sensor]
SensorNo [PK/FK -> Sensor]
UpperLimit
LowerLimit
[SwitchSensor]
LocationId [PK/FK -> Sensor]
SensorNo [PK/FK -> Sensor]
OnTimeLimit
[Reading]
LocationId [PK/FK -> Sensor]
SensorNo [PK/FK -> Sensor]
ReadingDtm [PK]
[ReadingSwitch]
LocationId [PK/FK -> Reading]
SensorNo [PK/FK -> Reading]
ReadingDtm [PK/FK -> Reading]
Switch
[ReadingValue]
LocationId [PK/FK -> Reading]
SensorNo [PK/FK -> Reading]
ReadingDtm [PK/FK -> Reading]
Value
[Alert]
LocationId [PK/FK -> Reading]
SensorNo [PK/FK -> Reading]
ReadingDtm …Run Code Online (Sandbox Code Playgroud) 让我们假设我有N个书店用于N书店.我必须在每个书店的单独表中保存有关书籍的数据,因为每个表都有不同的方案(列的数量和类型不同),但是所有Bookstores表都有相同的列集;
现在我想创建一个只有几列的"MasterTable".
| MasterTable |
|id. | title| isbn|
| 1 | abc | 123 |
| MasterToBookstores |
|m_id | tb_id | p_id |
| 1 | 1 | 2 |
| 1 | 2 | 1 |
| BookStore_Foo |
|p_id| title| isbn| date | size|
| 1 | xyz | 456 | 1998 | 3KB |
| 2 | abc | 123 | 2003 | 4KB |
| BookStore_Bar |
|p_id| title| isbn| publisher | Format | …Run Code Online (Sandbox Code Playgroud) 我有一个带有uniqueidentifier的列,可以引用四个不同的表中的一个.我已经从两个方面看到了这一点,但两者似乎都是不好的做法.
首先,我看到了一个ObjectID列,没有明确地将其声明为特定表的外键.然后你可以推送你想要的任何uniqueidentifier.这意味着您可能会从不属于我想要的4个表的表中插入ID.
其次,因为数据可以来自四个不同的表,我也看到人们制作了4个不同的外键.并且在这样做时,系统依赖于具有非NULL值的ONE AND ONLY ONE列.
这样做有什么好办法?例如,我的表中的记录可能会引用医院(ID),诊所(ID),学校(ID)或大学(ID)......但仅限于那些表.
谢谢!
database sql-server database-design relational-database database-schema