我在我的數據庫中有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