gpt4 book ai didi

mysql - 数据库设计: different fields for multiple user types

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

我正在使用 MySQL 5.0.77 构建一个应用程序,其中包含

a) 不同的用户类型(例如木匠、机械师、...、管道工)
b) 每种用户类型的不同输入字段,例如用户选择木匠,然后会看到与该职业相关的字段,其中每个职业的字段都不同

我的想法是这样的:

Table: users<br/>
user_id<br/>
user_name

Table: carpentry<br/>
user_id<br/>
woodwork_rating<br/>
metalwork_rating

Table: plumbing<br/>
user_id<br/>
central_heating_rating<br/>
bathroom_rating

等等...

这看起来不太好,因为我可能最终会在具有不同字段的多个表中存在大量表和用户。

我非常喜欢元标签表的想法(就像我们在 Wordpress 中看到的那样),以便存储每个用户的字段条目,例如

Table: user_info<br/>
user_id<br/>
field<br/>
value

所以我们会有例如

1 |木制品评级 |中级
1 |金属制品评级 |高级
2 |木制品评级 |高级

我的问题是,您将如何构建一个具有多个用户的多个字段的数据库,而每个用户仅填写一类可用字段?

谢谢

最佳答案

表用户:

 UserID: Autoinc PRIMARY KEY
(More user data columns here)
UserType: CHAR(5)

表用户类型

 UserType: CHAR(5) PRIMARY KEY
Description: VARCHAR(50)

表用户评级列表

 UserRatingCode: CHAR(5) PRIMARY KEY
UserType: CHAR(5) REFERENCES UserTypes
Description: VARCHAR(50)

表用户评分

 UserID: INTEGER PRIMARY KEY / REFERENCES Users
UserRatingCode: CHAR(5) PRIMARY KEY / REFERENCES UserRatingList
Rating: INTEGER (or whatever you prefer)

表 UserRatingList 建立了可应用于每种用户类型的评级模式。 UserRatings 包含实际评级。我使用 CHAR(5) 提供可读代码,而无需加入说明字段,但如果需要,您可以将它们更改为 INTEGER。

这个结构也可以修改为允许每个用户拥有多种类型;只需创建一个包含 UserID 和 UserType 的附加 UserTypeLinks 表即可。

关于mysql - 数据库设计: different fields for multiple user types,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4258563/

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