处理两个变量一个数据库条目

时间:2013-09-10 03:37:03

标签: php forms mysqli

对于像这样的用户我有一行

id username owns

我打算制作一个表格来指定一些细节,例如用户拥有的......

例如,他们可以拥有自行车,卡车,汽车等。如果不为每个占有创建一个新列,最好的方法是什么?或者正在为每个拥有者创建一个新的专栏?

没有一定数量的财产。

3 个答案:

答案 0 :(得分:2)

如何创建三个表。第一个是用户:

-------------
| id | user |
-------------
| 1  | Jim  |
| 2  | Tom  |
| ...| etc  |
-------------

第二个包含产品:

----------------
| id | product |
----------------
| 1  | Truck   |
| 2  | Bike    |
| 3  | Car     |
----------------

第三个将他们联系在一起:

------------------------
| user_id | product_id |
------------------------
|   1     | 1          |  # Jim owns a truck
|   1     | 2          |  # Jim also owns a bike
|   2     | 3          |  # Tom owns a Car
------------------------

答案 1 :(得分:1)

您可以使用名为2nd normal form的策略创建另一个名为user_own

的表格

包含字段user_id, own_item

然后您可以根据用户拥有的每个项目将记录插入到第二个表中。

答案 2 :(得分:0)

我建议创建一个名为userPossessions的新表,或者在第一列中添加一个限制用户ID的外键。例如,

CREATE TABLE userPossessions (
userID int(11) NOT NULL,
posession varchar(255) DEFAULT NULL,
PRIMARY KEY (userID),
CONSTRAINT userid_const FOREIGN KEY (userID) REFERENCES users(id)
ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

通过这种方式,您可以向该表添加任意数量(或“拥有”),并且您可以轻松地将这两个表连接到用户ID上。