Ism*_*ail 6 mysql sql database-design
例如:我有一个带有外键的“历史”表,它可能指向不同的表/实体,具体取决于字段值。
表历史:
create table history(
id int PimaryKey AUTO_INC,
elementid int, (ForeignKey)
elementtype varchar
)
Run Code Online (Sandbox Code Playgroud)
该表已填充,例如:
id ElementId ElementType
1 1 Device
2 2 Simcard
3 2 Simcard
Run Code Online (Sandbox Code Playgroud)
这告诉我们有
目标是拥有一个可用于多个实体的表。
这是集成动态外键的正确方法吗?我还想到的是创建一个包含表/实体的列表以供参考,因此该表将如下所示:
ALTER TABLE history MODIFY ElementType INTEGER;
Run Code Online (Sandbox Code Playgroud)
ElementType 将指:
create table entities(
id int PimaryKey AUTO_INC,
name varchar
)
Run Code Online (Sandbox Code Playgroud)
填充新表历史记录,例如:
id ElementId ElementType
1 1 1
2 2 2
3 2 2
Run Code Online (Sandbox Code Playgroud)
实体表被填充,例如:
id name
1 Device
2 Simcard
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4859 次 |
| 最近记录: |