table 中文本字段的 STRING 类型或 SSTRING 元素?优点和缺点

STRING type or SSTRING element for a text field in table? Pros and cons

我需要创建一个 Z table 来存储修改某个自定义对象的原因。

在 UI 中,用户将选择一个原因 ID,然后可选择填写一个文本框。 table 将或多或少包含以下字段:

key objectID
key changeReasonID
    changedOn
    changedBy
    comments

我对评论字段有疑问。我读了 documentation 关于 STRING 和 SSTRING 的限制,但我不清楚透明 table 中使用的 STRING 类型字段是否有长度限制。

即使长度不受限制(至少不受数据库限制),我也不确定使用这种方法是否是个好主意,或者您会推荐 CHAR/SSTRING 具有固定长度的类型吗?

**我的系统是运行 MSSQL数据库。

字符串的长度不受限制,无论是在 ABAP structures/tables 中还是在数据库中。

大多数数据库只会在此列中存储一个指针,该指针指向存储在不同内存段中的实际 CLOB 值。因此,它们限制了这些列的使用,并且可能不允许您将它们用作键或索引。

如果我没记错的话,ABAP 支持每个结构 a maximum of 16 string fields,这自然限制了它的用例。还要考虑 ABAP 结构的最大大小。

对于您的情况,如果评论仍然是唯一的长字段,并且如果您实际上可以存储无限制的输入(--> 安全约束?),那么字符串听起来是一个合理的选择。

如果您不确定未来会发生什么,或者为了安全起见,您可能希望选择 sstring 或简单的 long char。