2017-07-14 91 views
-1

好的,我希望我可以让这个问题尽可能清楚。mysql中的多个字段

我有以下表:

表:电话

phone_id | name  | ... ... ... | manufacturer_code 
----------------------------------------------------- 
1  | samsung |    | 001 
2  | apple |    | 002 
3  | htc  |    | 003 
and so on... 

我有列的LOT(.........装置等宽度的至少40个不同的柱,高度,深度,颜色,has_bluetooth,...这样的东西)。

现在我想要做不同的事情,但我没有想法如何开始。

我是怎么想这么做的? (纠正我,如果我错了!)

1)在不同的表存储的字段名

表:phone_fields

field_id | name 
-------------------------------- 
1   | name 
2   | width 
3   | weight 
4   | depth 
...   | ... 
41   | manufacturer_code 

2)与数据连接领域每部手机在另一个表

台手机

row_id | phone_id | field_id | value 
------------------------------------------------------ 
1   | 1   | 1   | samsung 
2   | 1   | 2   | 10,50 cm 
3   | 1   | 3   | 1 kg 
... (and so on). 

我希望这可以搜索/过滤,我现在有一个过滤器,现在过滤品牌,颜色,价格范围,...这工作正常。

你应该怎么做?或者没有人有关于此的有用的链接/教程?英语不是我的母语,所以我不知道如何搜索它。

在此先感谢!

编辑:我为什么要这样做?我希望能够通过我的管理面板添加额外的字段(如果有必要)(而不是通过phpmyadmin或类似的东西)。

+1

您需要尝试**自己编写代码**。在[**做更多的研究**之后](https://meta.stackoverflow.com/q/261592/1011527)如果你有问题**发布你已经尝试了**的**明确的解释不工作**并提供[最小,完整和可验证示例](http://stackoverflow.com/help/mcve)。阅读[如何问](http://stackoverflow.com/help/how-to-ask)一个很好的问题。请务必[参观](http://stackoverflow.com/tour)并阅读[this](https://meta.stackoverflow.com/q/347937/1011527)。 –

+0

我知道周杰伦,但我不知道如何开始,这是问题所在!这更多的是数据库设计问题。 – yesterday

+1

您可能会过度使用数据库设计。我没有看到你现在设置的方式有什么问题,并且你想要将它改变为听起来不必要的复杂 – Kai

回答

0

如果您的请求总是返回整个字段集合中的,然后把它放在一个表

如果没有,那你就不用只在一个表中最重要的领域,而在其他表的地方,其余的属性并通过外键链接它

+0

我发现了一个类似于我的问题:https://dba.stackexchange.com/questions/24636/product-attribute-list-design-pattern – yesterday