如果我在MySQL数据库做了正确的事情,我需要一个建议。我正在将这个我命名为inventory的数据库连接到一个java应用程序,这个数据库由一个名为item的表组成,下面是详细信息:
在开发库存应用程序时,我已经使用它来存储库存,但我现在要做的是添加一个表,该表将存储来自客户的订单。
我打算这样做:
表名:orders
其中包括以下内容:
我的问题是:由于使用相同的变量,我是否违反了MySQL规则?
或者你有什么建议?如有任何建议,将不胜感激。
(预先谢谢:)
发布于 2011-06-27 06:46:37
您最好使用items表以及orders和order_items表。
命令
id int(11), AUTO_INCREMENT
customerid int(11)
orderdate datetime
PRIMARY KEY (id)
FOREIGN KEY (customerid) REFERENCES Customers(Id)order_items
orderid int(11),
itemid int(11)
FOREIGN KEY (orderid) REFERENCES Orders(id)
FOREIGN KEY (itemid) REFERENCES Items(Id)这样,重复的数据就更少了。
发布于 2011-06-27 06:44:09
您的设计可以使用一些规范化,您有很多重复的数据,这违背了关系数据库(如MySQL )的整个概念。
http://www.devshed.com/c/a/MySQL/An-Introduction-to-Database-Normalization/
发布于 2011-06-27 06:46:20
在order表中,您可以拥有Customer_Id并生成那个外键。因为客户应该在您为他/她创建订单之前就在那里。
不,如果使用相同的变量,就不会违反MYSQL的规则,
当您编写一个联接时,您需要使用别名来识别,而不是混淆。
https://stackoverflow.com/questions/6489379
复制相似问题