我正在尝试创建一个购物车类型的数据库,用户可以在其中结帐某些商品,我将能够看到每个人拥有哪些商品,并且我还可以查看特定商品被 checkout 给谁.
我还想要每个项目的图像。 (不确定效率如何?)
目前我有这样的东西:
CREATE TABLE person(
id CHAR(9) NOT NULL PRIMARY KEY,
name VARCHAR(30) NOT NULL
);
CREATE TABLE items(
id CHAR(9) NOT NULL PRIMARY KEY,
itemName VARCHAR(30) NOT NULL,
category VARCHAR(30) NOT NULL,
subcategory VARCHAR(30) NOT NULL,
image LONGBLOB
);
CREATE TABLE person_items(
personID CHAR(9) NOT NULL,
itemID CHAR(9) NOT NULL,
FOREIGN KEY (personID) REFERENCES person(id),
FOREIGN KEY (itemID) REFERENCES items(id)
);
这是一种基本上存储允许人们 checkout 的项目数组的有效方法,还是有更好的方法?
另外,为图像存储 LONGBLOB
是一个好主意还是有更好的方法来做到这一点?
最佳答案
首先,表中的 ID 应该是整数。关系表“person_items”在人员和项目之间启用 n:m 关系,如果我理解您的问题,这应该是您的目标。
我建议在数据库中保存路径和图像文件名,以便您可以获取此值并将其用作应用程序中的链接或类似内容。我不会将图像保存为 blob,因为您需要对标题等进行大量不必要的工作。如果使用数据库中的路径,您将可以轻松使用不同的文件格式。只是我的意见。
关于mysql - 数组关联和数据库设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28884830/