【发布时间】:2012-09-17 14:46:33
【问题描述】:
也许,我快疯了,最后我忘记了我学到的一切,但我对我正在设计的数据库模型有很多疑问。
这是我的问题:
我有一个包含 n 列的表,其中八列将有三个可能的值:YES、NO、UNKNOWN。
我认为我可以使用另一个带有 PK 和描述的表,但我不确定我是否可以创建从一个表到同一个表的八个外键。
我的问题是:
我是否需要第二张表来存储 YES、NO 和 UNKNOWN?同一张表可以有八个外键吗?
【问题讨论】:
-
当然有可能,不过你考虑过 ENUM 吗?
-
您的数据库可能有所不同?我注意到你关于数据库的抽象问题都没有提到你正在使用什么数据库。这可能是相关的。 (MySQL 和 postgreql 都有 ENUM。)
-
这是针对 SQL Server 2008 和针对 Android 的 Sql lite 的数据库设计。我将在软件方面使用 Enum,或者我可能会将 YES、NO 和 UNKNOWN 存储为文本。
-
例如 MySQL 为列提供了 ENUM 和 SET 类型。
标签: database-design