我有以下数据要保存在我的数据库中(这用于通过第三方API发送短信)
text_id, text_message, text_time, (array)text_contacts
text_contacts
包含一个包含所有contact_id
的
如何将数据正确存储在MySQL数据库中? 我以两种方式思考自己:
注意:存储在text_contacts数组中的数据不需要随时更改。
note2 :数据用作单独的contact_id以从联系人处获取电话号码,并检查短信是否实际已发送..(结合使用text_id和phonenumber)
效率更高,为什么?
答案 0 :(得分:3)
这完全取决于您的预期使用特征。如果您有近期需要根据contact_id
进行查询,请按照第二个解决方案单独存储它们。如果您将它们存储起来用于存档目的,并且不希望它们被动态使用,那么您可以节省时间并将它们存储在JSON字符串中。这都与使用有关。
答案 1 :(得分:1)
IMO,请使用第二个表格,将text-id映射到contact-id。比将所有联系人存储在一个字段中更容易操作
答案 2 :(得分:1)
这个话题会带来不少意见,但我的信念是:第二张表,无论如何。
答案 3 :(得分:1)
几乎所有实现都会使用一个表来存储每个text_contacts,然后第二个表将使用外键来引用text_contacts表。所以,如果说你有一个表text_contacts看起来像这样:
contact_id | name
1 | someone
2 | someone_else
一个看起来像这样的短信表:
text_id | text_message | text_time | text_contact
1 | "Hey" | 12:48 | 1
2 | "Hey" | 12:48 | 2
已发送消息的每个联系人在文本消息表中都有一个新条目,最后一列引用text_contacts表的contact_id字段。这种方式使得通过联系人检索消息变得更加容易,因为您可以说“select * from text_messages where text_contact = 1”而不是搜索单个表上的每个数组,以查找特定用户发送的消息。