我在我的数据库中有3个表格:users
,payment_methods
和user_blocked_pm
。 users
表本身不言而喻,payment_methods
存储公司使用的所有付款方式,而user_blocked_pm
则为特定用户阻止了付款方式。改善MySQL中3个表之间的关系
+------------------+
| users |
+-----+------------+
| id | user_name |
+-----+------------+
| 1 | John |
| 2 | Davis |
+-----+------------+
+-----------------------+
| payment_methods |
+-----+-----------------+
| id | payment_method |
+-----+-----------------+
| 1 | credit_card |
| 2 | cash |
+-----+-----------------+
+-----------------------------------+
| user_blocked_pm |
+-----+---------+-------------------+
| id | user_id | payment_method_id |
+-----+---------+-------------------+
| 1 | 1 | 1 |
| 2 | 1 | 2 |
| 3 | 2 | 2 |
+-----+---------+-------------------+
所以,按照上述的结构中,既payment_methods
被阻塞的用户John和cash
被阻塞戴维斯。
按照此结构,当有多个用户和付款方式时,我将在user_blocked_pm
上有多个记录,因为每个用户只能使用少数几种付款方式。
有没有更好的方法来处理users
和user_blocked_pm
之间的这种关系,以便表格不会变得很大?
请注意,ubpm中的ID是多余的 – Strawberry
因此,您可以在用户级别添加一个字段,指示所有付款方式被阻止,或者您可以允许user_blocked_PM上的单个块。并注意表格不应该很大。我希望大多数客户和付款方式都不会被阻止 – xQbert
@xQbert,这对于下午的一小部分工作正常,直到用户决定根据付款期限创建其中的72个,并且该州的不同城市使blocked_pm在134k行周围的表... – Rafael