gpt4 book ai didi

mysql - 有没有办法让一个表的值引用另一个表的列本身?

转载 作者:行者123 更新时间:2023-11-29 15:13:06 29 4
gpt4 key购买 nike

我有一个数据库,其中有关用户的数据存储在如下所示的表中

|_firstname_|_lastname_|_age_|...
| John | Johnson | 21 |...
...

即使用普通的关系数据库模型。

如果我改用 EAV 模型来存储上述数据,则列(在 EAV 中称为属性)本身将存储在表中,并且具有唯一的列(属性)ID:s。这样做的好处是,我可以在另一个表中使用这些 ID: 将数据连接到列本身,例如该列是隐藏还是显示在用户 UI 中(下面也使用 EAV型号):

|____column_id____|___attribute___|___value___|
| <firstname_id> | hidden | false |
| <lastname_id> | hidden | false |
| <age_id> | hidden | true |
...

但是,我想坚持用户数据表(首先显示的表)的关系数据库模型,因为否则查询会变得很慢,但我仍然希望将值连接到列,如果可以的话我要使用 EAV 模型。

有没有一种方法可以让表以严格的方式存储有关用户数据表的列本身的数据?

最佳答案

EAV 最简单的实现可能只有三个表:实体、属性和值。此设置的示例如下所示:

screenshot of EAV showing three tables: entity, attribute and value

所以你的表格可能看起来像:

|attribute_id| name       | is visible |
|10 | firstname | 1 |
|11 | lastname | 1 |
|12 | age | 0 |

|entity_id | entity_name |...
|1 | person1 |
|2 | person2 |

|row_id |attribute_id| entity_id | entity_id |
|155 |10 | 1 | John |
|156 |11 | 1 | Doe |
|199 |12 | 1 | 28 |
|.... .... .... ....
|255 |10 | 2 | Ali |
|256 |11 | 2 | Smith |
|279 |12 | 2 | 25 |

关于mysql - 有没有办法让一个表的值引用另一个表的列本身?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59922162/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com