【发布时间】:2011-10-10 06:35:10
【问题描述】:
我有两个 SQL 表,A 和 B。每个表都有主键 ID。表 B 有字段 X(可能为 NULL),它引用 A 的 ID(如果它不为空)。
然后我需要一个存储在表 A 中的对象标识符列表(存储在文件中)。
您建议使用哪些 ID,列表中的 A.ID 还是 B.ID? (很明显,有了 B 中一行的 ID,我们可以推断 A 中的一行 ID,前提是 B 中的该行具有非 NULL X。)
[添加] 明确一点:一个对象部分存储在 A 中,部分存储在 B 中。
[添加] 表结构(z_users 为 B,z_clients 为 A,z_users.client 为字段 X):
创建表`z_users`( `id` int(10) unsigned NOT NULL auto_increment, `password` varchar(255) 整理 utf8_bin NOT NULL, `fullname` varchar(255) 整理 utf8_bin NOT NULL, `phone` varchar(255) 整理 utf8_bin NOT NULL, `address` 文本整理 utf8_bin NOT NULL, `email` varchar(255) 整理 utf8_bin 默认 NULL, `admin` enum('false','true') collate utf8_bin NOT NULL default 'false', `worker` int(10) 无符号默认 NULL, `client` int(10) 无符号默认 NULL, 主键(`id`), 唯一键`worker`(`worker`), 唯一键`client`(`client`), 唯一键 `email` (`email`) ) 引擎=InnoDB 默认字符集=utf8 排序=utf8_bin; 创建表`z_clients`( `id` int(10) unsigned NOT NULL auto_increment, `company` 文本整理 utf8_bin NOT NULL, `shortdesc` 文本整理 utf8_bin NOT NULL, `site` varchar(255) 整理 utf8_bin NOT NULL, `affair` varchar(255) 整理 utf8_bin NOT NULL, 主键(`id`) ) 引擎=MyISAM 默认字符集=utf8 排序=utf8_bin;【问题讨论】:
标签: sql database database-design