【问题标题】:How to make Custom attributes for SQL table如何为 SQL 表制作自定义属性
【发布时间】:2021-03-20 01:03:06
【问题描述】:

让用户使用自定义属性的正确方法是什么?

举个例子
考虑到, 有一个 Web 应用程序,使用前端用户界面 admin 用户需要能够在以后向 Employee 添加自定义属性。这意味着不仅针对特定员工记录,还针对所有员工。

最初,有一个包含以下字段的员工表,

| Employee |
|----------|
| ID       |
| Name     |
| Email    |

稍后,系统管理员想在 Employee 表中添加一些自定义字段(属性),例如国籍、手机号码、地址。

改变表格并添加新列是个好主意吗?或者有什么合适的方法可以做到这一点。

目前正在做数据库的ER图,希望用Postgresql或者MySQL来实现。

谢谢!

【问题讨论】:

    标签: sql postgresql database-design entity-relationship


    【解决方案1】:

    有多种方法可以做你想做的事:

    • 向给定表添加新列。
    • 使用其他属性创建一个新表。
    • 使用表中的 JSON 列来处理灵活的新属性。
    • 为灵活属性创建一个实体-属性-值表,每个实体属性一行。

    你如何选择这些?这取决于您在问题中未讨论的因素。其中包括:

    1. 所有实体都具有相同的属性吗?
    2. 能否让表脱机以更改其结构?
    3. 表格有多大,行有多宽?这些问题是否与查询性能有关?
    4. 多久会添加一次新列?

    可能有更多的考虑,可能有更多可能的解决方案。关键是没有通用的正确答案。不同的解决方案有不同的优势和劣势。

    【讨论】:

    • 谢谢@gordon-linoff,对于您提出的问题 1. 是的,所有实体都具有相同的属性,2. 可能没有,3. 行不是很宽(最初是 4 或 5 列), 4. 我不确定,但一年中不会经常出现一次或两次。我对使用实体属性值表很感兴趣。您能否解释一下如何使用 SQL(PostgresSQL 或 MySQL)实现这一目标?
    • 如果我知道上述问题的答案,请您简要说明如何在这些选项中进行选择。我可以遵循任何材料吗?
    • 一定要使用ALTER TABLE ... ADD ...。这是一个简短的操作,无论表有多大。
    猜你喜欢
    • 2012-02-15
    • 1970-01-01
    • 2019-12-06
    • 1970-01-01
    • 2017-03-08
    • 1970-01-01
    • 2023-01-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多