我目前正在研究一种在很大程度上依赖于数据库中的大量数据的webapp。请考虑以下情况。
A)仅使用预定义表格的表格设计
1)table vehicle_type
------------------
id|name
------------------
1 |car
2 |truck
3 |bike
-------------------
2)table users
-------------------
id|name
-------------------
1 |James
2 |John
3 |Stefen
-------------------
3)table ownership
--------------------------------
id|vehicle_type_id|user_id|count
--------------------------------
1 | 1 |1 |30
2 | 1 |3 |20
3 | 3 |2 |13
--------------------------------
B)使用app逻辑动态创建表格的表格设计,即当一个新条目进入vehicle_type时,我们创建一个具有该名称的新表格
1)table vehicle_type
------------------
id|name
------------------
1 |car
2 |truck
3 |bike
-------------------
2)table users
-------------------
id|name
-------------------
1 |James
2 |John
-------------------
3)dynamic_table car
-------------------
id|user_id|count
-------------------
1 |1 |20
2 |2 |10
-------------------
3)dynamic_table truck
-------------------
id|user_id|count
-------------------
1 |3 |15
2 |2 |20
3 |1 |12
-------------------
4)dynamic_table bike
-------------------
id|user_id|count
-------------------
1 |1 |4
2 |2 |12
-------------------
在第二种情况下,vehicle_type作为动态表的关键。首先,我使用所有权来存储每个所有者拥有的车辆类型数量的数据,在第二个我为每种车辆类型创建动态表格并将每个车辆类型计数存储在单独的表格中。我认为这种方法将使与使用单个表所有权相比,数据库相对容易并且查询效率更高。
我从未使用大量数据,但这个数据肯定会有很多数据。 请注意,上表用作不是实际应用逻辑的一部分。
请说明每种方法的优点和缺点。
由于
答案 0 :(得分:0)
不确定动态表是什么。对于“哪个更好”的问题,没有一个正确的答案。所以这取决于项目。以下是一些可能的意见。
第一种方法(一张表):
优点:
缺点:
第二种方法:多个表格
优点:
缺点:
作为一般建议:考虑您的数据访问模式。它应该有助于你理解。