我正在尝试创建一个购物车类型的数据库,用户可以检查某些项目,我将能够看到每个人有什么项目,我也能够看到特定项目被检出的人。
我还希望每个项目都有一个图像。 (不确定效率如何?)
目前我有这样的事情:
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)
);
这是一种有效的方式来基本存储一个人可以检查的项目数组,还是有更好的方法?
另外,为图像存储LONGBLOB
是个好主意还是有更好的方法来做到这一点?
答案 0 :(得分:0)
首先,表中的ID应为INTEGER。如果我理解你的问题,关系表'person_items'会在人与物之间建立n:m关系,这应该是你的目标。
我建议在数据库中保存路径和图像文件名,以便您可以获取此值并将其用作应用中的链接或类似内容。我不会将图像保存为blob,因为你有很多不必要的标题工作等等。如果在数据库中使用路径,您将可以轻松地使用不同的文件格式。只是我的意见。