Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 数据模型问题:如何限定第三个对象_Mysql_Sql_Model - Fatal编程技术网

Mysql 数据模型问题:如何限定第三个对象

Mysql 数据模型问题:如何限定第三个对象,mysql,sql,model,Mysql,Sql,Model,我处理的是稍微不同的类型,因此为了明确我想要实现的目标,我决定使用隐喻 假设您需要创建表来描述两个建筑局的项目: 第一只处理3D平面图 第二只处理二维草图 我有下表 mysql> describe sketch; +------------------+-------------------------------+------+-----+-------------------+ | Field | Type | N

我处理的是稍微不同的类型,因此为了明确我想要实现的目标,我决定使用隐喻

假设您需要创建表来描述两个建筑局的项目:

第一只处理3D平面图 第二只处理二维草图

我有下表

mysql> describe sketch;
+------------------+-------------------------------+------+-----+-------------------+
| Field            | Type                          | Null | Key | Default           |
+------------------+-------------------------------+------+-----+-------------------+
| project_id       | binary(16)                    | NO   | PRI | NULL              |
| company_id       | binary(16)                    | NO   | PRI | NULL              |
| type             | enum('2D','3D','N/A')         | YES  |     |'N/A'              |
+------------------+-------------------------------+------+-----+-------------------+
如您所见,项目id和公司id构成主键

当在某些特殊情况下,同一公司在同一项目ID下承担2D和3D任务时,会出现此问题

或者,同一家公司开始处理两个或多个相同类型的子项目(例如,两个都是二维草图),但都在我们称之为具有完全相同ID的父项目的范围内

一个快速而肮脏的修复方法是简单地将唯一ID添加到上表中,但它对我不起作用,因为有各种报告和其他函数基本上都是这样做的:
从草图中选择blah,其中project_ID=XXX和company_ID

我可以添加代码来过滤来自上述SQL的结果,但我不能真正更改结构或表

你知道我有什么选择吗

感谢你的任何想法


在此之前非常感谢

正如您所描述的问题,公司/项目不是主键。您描述了违反唯一性的情况


那么公司/项目/类型似乎确实是唯一的键和候选主键。我想说的是,您应该有一个数字主键,并将三方键声明为唯一的。

正如您所描述的问题,公司/项目不是主键。您描述了违反唯一性的情况


那么公司/项目/类型似乎确实是唯一的键和候选主键。我想说你们应该有一个数字主键,并声明三方键是唯一的。

在我看来,草图的维度独立于它所属的公司和项目。在我看来,草图的维度独立于它所属的公司和项目。