我有以下问题:
我输入了字段名称和输入字段电话,它们绑定在一起(例如Home - 555-5555-555,Hideout - 333-333-3),用户可以根据需要插入尽可能多的电话对。 目前(这是需要升级的旧数据库版本)用户有一行用于插入数据。 电话字段按以下方式制作;
333-333-333,55-555-555 .... 当需要显示电话号码时,这会爆炸。我想保留这个并按照以下方式制作电话对 Home_55555-55,Hideout_333-33-33 ... 。
我怎么能这样做,这是一个很好的方法,或者我应该用经典的方式(每对电话一对)?
答案 0 :(得分:2)
不,这不是这样做的方法,你真的想要每个电话号码一行,而且,你想要一个单独的字段(列)用于手机类型(例如Home或Hideout)。数据库表应如下所示:
+----+----------------+--------------+
| id | phone_location | phone_number |
+----+----------------+--------------+
| 1 | Home | 333-3333-333 |
| 2 | Hideout | 555-5555-555 |
...
您甚至可能想要考虑一个单独的位置表(如果'location'-name是某种固定的,即用户不能随机选择名称)。您可以创建一个这样的表:
+----+----------------+
| id | phone_loaction |
+----+----------------+
| 1 | Home |
| 2 | Hideout |
...
你的原始表格如下:
| id | phone_location | phone_number |
+----+----------------+--------------+
| 1 | 1 | 333-3333-333 |
| 2 | 2 | 555-5555-555 |
...
当然,这不考虑不同的用户,因此您需要在phone_number表中添加一个额外的列,其中user_id
列指向users
表