![]() |
1
2
正如更新一样,我们决定通过alter table将新列添加到现有的数据库表中,以实现自定义字段。经过一些研究和测试,这看起来是大多数数据库引擎的最佳解决方案。包含自定义字段元信息的单独表提供了管理、查询和使用自定义字段所需的信息。 |
![]() |
2
2
我看到的第一个缺点是,您需要授予应用程序服务更改权限。
其次,如何区分每个用户所需的字段?或者用户B可以访问用户A创建的字段吗? 请注意,列的基数也可能显著增加。如果每个用户添加2个字段,我们已经讨论了200个字段。 就我个人而言,我会使用这两种方法中的一种或它们的组合:
我将在表中添加一个文本字段,在其中存储一个或多个序列化字典:
缺点是这些值不容易搜索。
字段表:
值表:
当然,它需要一个连接,实现起来有点复杂,但更通用,而且如果索引正确的话,效率也相当高。 |
![]() |
3
1
我认为向数据库表中添加新的自定义字段没有任何问题。 使用这种方法,可以使用特定/最合适的类型,即需要一个int字段?将其定义为int。而对于名称/值类型表,您将把多个数据类型存储为一个类型(可能是nvarchar),除非您用不同类型的多列完成该名称/值表,并填充适当的列,但这有点可怕。 此外,添加新列使查询更加容易/无需涉及到新名称/值表的联接。 它可能感觉不到通用性,但我觉得这比有一个“一刀切”的名称/值表要好。
从SQL Server的角度来看(2005年以后)。
|
![]() |
hello_programmers · Mysql从其他表输出一列 1 年前 |
![]() |
Community wiki · 这个MySQL语句出了什么问题? 1 年前 |
![]() |
Community wiki · 优化从同一表中提取的多列的查询 1 年前 |
![]() |
Popo · Sql查询:返回数据库中不可用的where条件 1 年前 |
|
Hamdan Nuramdani · 对账单中一周内不同表中的数据求和 2 年前 |
|
Kugelfisch · 用php为数据库加密数据 2 年前 |