在我的网站上,客户可以选择使用各种项目(具有卖家,颜色等属性)创建活动。 我应该为每个事件都有一个数据库和一个新表吗?我不知道另一种方法来编程这个并将每个客户/事件分成一个新的数据库似乎是一个糟糕的解决方案,但我不熟悉数据库,也不知道是否有这样的解决方案。愚蠢。
我假设我有一个带有用户ID的TABLE,一个用于每个事件的TABLE,以及一个将用户链接到他/她创建的事件的TABLE。这是最好的方法吗?所有在一个数据库? 谢谢!
答案 0 :(得分:0)
如果您有少量事件类型,并且事件类型的性质非常不同(不同的属性),那么您可以为每种事件类型创建一个不同的表。
但是,通常您将为所有事件创建一个包含一个表的数据库,其中包含事件类型或代码的列(如果需要)。您也不需要创建包含所有事件类型的表,您的代码可以包含它们。您的表应仅包含已触发的实际事件。
答案 1 :(得分:0)
您应该在用户表和事件表之间建立一对多的关系。事件表应该将用户ID作为外键。
CREATE TABLE user (
id int UNSIGNED AUTO_INCREMENT NOT NULL,
name varchar(50) NOT NULL,
last_modified timestamp NOT NULL,
PRIMARY KEY (id),
UNIQUE KEY (name)
);
CREATE TABLE event (
id int UNSIGNED AUTO_INCREMENT NOT NULL,
user_id int UNSIGNED NOT NULL,
name varchar(50) NOT NULL,
description varchar(500) NOT NULL,
last_modified timestamp NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY (user_id) REFERENCES user.id ON UPDATE CASCADE ON DELETE CASCADE
);
那么,您拥有了自己的用户,当您添加事件时,您只需将user_id分配给该事件所针对的任何用户。希望这能为你提供一些东西。