我已经读到这是一个禁忌,但我想知道这是否总是如此。我有一个“餐 table ”列表,可以容纳一系列座位。

您可以在图像中看到 table_num 12 将容纳 2 或 3 个座位。

所以,现在我当前的解决方案是查询所有表记录(根据 user_index 未公开的原因)然后遍历结果查找可以容纳 3 人的表(如果恰好是三个人在寻找一张表)。

我通过在返回数据的“座位”列上使用 array_implode() 方法(在 php 中)来做到这一点。我觉得这是一个更简单的解决方案,而不是创建一个单独的“座位”表,然后为每个座位分配 table_index 和 user_index,然后必须运行第二个查询以在原始“表”表中找到 table_num。

基本上,通过使用 array_implode() 我能够绕过第二个查询。但是,我不知道这是否会减少税收。或者,可能我错过了一些很棒的查询语言(比如关系表行话?)

最佳答案

如果您从此表中删除了 seats 列,然后有一个包含三列的新 seats 表: idtable_indexnum_seats ,其中 table_index 与现有表中的 index 相关(多对一,因为每个表可能有多个整数在 seats 中)。你可以像这样选择你想要的表:

SELECT tables.* FROM tables
INNER JOIN seats ON tables.index = seats.table_index
WHERE seats.num_seats = ?

关于php - 在 MySQL 中存储逗号分隔的数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8915691/

10-16 18:51