从 DTD 文件制作 MySQL 表的问题

发布于 2024-11-27 05:02:43 字数 233 浏览 1 评论 0原文

我有一个 dtd 文件,它描述了我的列应该有哪些列。

问题是,它没有提供有关我应该为列使用什么数据类型的信息,即是 INT、Varchar 还是 Text,也没有提供有关列的最大长度的信息。在大多数地方它都写着#PCDATA,我相信这只是意味着混合数据。

有没有办法让我找出应该使用的数据类型和最大长度,或者我应该简单地制作一个充满 Varchar (255) 的表?

I have a dtd file which describes what columns my columns should have.

The problem is, it gives no info on what data type I should use for the columns, i.e whether INT, Varchar, or Text, and no info on the max length of the columns. In most places it says #PCDATA which I believe simply means mixed data.

Is there a way for me to find out what data type and max lenghts I should use, or should I simply make a table full of Varchar (255)s?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

放我走吧 2024-12-04 05:02:43

众所周知,SGML 缺乏类型系统,因此没有机械化的方法来推断任何类型元素的正确类型。请注意,#PCDATA 并不意味着“混合数据”,而是“已解析的字符数据”——内容为 #PCDATA 的元素不得包含任何其他元素,但它可以包含实体引用(在 SGML 中,它受到包含/排除例外的影响,但 XML 中不存在这些例外)。 “混合内容”类似于 (element1 | #PCDATA),将其转换为数据库模式要困难得多。

最好的选择是从元素类型名称或 DTD 中有用的注释推断出内容类型,和/或检查一系列文档以观察其使用模式。

SGML is (in)famously lacking a type system, so there is no mechanized way to infer the correct type for any sort of element. Note that #PCDATA doesn't mean "mixed data", but "parsed character data" -- an element with content #PCDATA mustn't contain any other elements, but it can contain entity references (and in SGML it is subject to inclusion/exclusion exceptions, but those are not present in XML). "Mixed content" is something like (element1 | #PCDATA), which would be a lot harder to translate into a database schema.

Your best bet is to either deduce the content type from the element type names or from helpful comments in the DTD, and/or to inspect a series of documents in observe their usage pattern.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文