新手到dba,我正在开发一个简单的库存数据库。这将列出设备,品牌,型号和状态(活动/非活动/丢失)项目。
我正在使用MySQL Workbench,PhpMyAdmin,XAMPP,PHP,MySQL来完成这个项目。
我不确定我是否正确接近这个,希望有人可以给我一些建议。
到目前为止,我有两张表 - items
和status
。
items
+--------+-------+------+-----------+--------+
| itemId | invNo | make | model | status |
+--------+-------+------+-----------+--------+
| 1 | 123 | HP | 566 | 1 |
+--------+-------+------+-----------+--------+
| 2 | 432 | Dell | Precision | 1 |
+--------+-------+------+-----------+--------+
| 3 | 456 | Dell | Precision | 2 |
+--------+-------+------+-----------+--------+
status
+----------+------------+
| statusId | statusType |
+----------+------------+
| 1 | Active |
+----------+------------+
| 2 | Inactive |
+----------+------------+
| 3 | Lost |
+----------+------------+
(您可以在上面的items
表中看到,有两个有效项,还有一个无效项。
在前端应用程序中,表格将列出所有具有相应状态的项目(如下文所示)。
+--------+-------+------+-----------+--------+
| itemId | invNo | make | model | status |
+--------+-------+------+-----------+--------+
| 1 | 123 | HP | 566 | Active |
+--------+-------+------+-----------+--------+
| 2 | 432 | Dell | Precision | Active |
+--------+-------+------+-----------+--------+
| 3 | 456 | Dell | Precision | Inactive|
+--------+-------+------+-----------+--------+
理想情况下,我希望能够在status
表中更改状态类型,并相应地更新items
。
我是否需要使用外键关系?
这里的任何帮助或指示都会很棒。我想开始走上正轨!
答案 0 :(得分:1)
您的设置正确无误。在状态表中,statusId是主键,在items表中,状态是外键。这意味着它是一个引用另一个表中主键的值。
要添加约束,您可以执行以下操作:
ALTER TABLE items ADD FOREIGN KEY (status) REFERENCES status(statusId);
答案 1 :(得分:1)
您可以在items.status上添加外键:
ALTER TABLE items
ADD FOREIGN KEY (status)
REFERENCES status(statusid);
或者你可以添加:
[ON DELETE reference_option]
[ON UPDATE reference_option]
reference_option:
RESTRICT | CASCADE | SET NULL | NO ACTION
文档:https://dev.mysql.com/doc/refman/5.6/en/create-table-foreign-keys.html