-3

嗨,我在我的项目中使用 php 和 mysql,我想知道哪个更好(所有方面)。
我期待数据库中有大量数据。
我希望它搜索得更快。


我应该存储真实值还是参考值。
1)有php处理吗?这意味着我将在数据库中存储值作为整数/小整数,然后创建一个函数来知道要输出的值。IE。如果 1 则值为“北”,否则为 2 则值为“东”,依此类推。值不会改变。

假设我将拥有至少 20 个此功能。

数据库设计
id 方向
1 1 (1=north)


输出(使用 php 显示输出)
north



2) 将所有数据转储到数据库。

数据库设计
id 方向
1 北

4

3 回答 3

1

我猜你在问是否将天数存储为文本或数字。没有理由存储文本。你可以很容易地从数字中得到句子

#http://pear.php.net/package-info.php?package=Numbers_Words must be installed
include("Numbers/Words.php");

$row;//The row corresponding to your quert fetched from database

$nw = new Numbers_Words();

$sentence="I am ".$nw->toWords($row['howmanydays']);

也不需要很多时间。

为什么不存储文本?好问题

1.文字占用空间大:

因此,您非常大的数据库将占用大量不必要的空间,这些空间可以通过使用数字数据类型轻松减少

2. 数值运算

您可以执行查询,例如 where howmanydays> 10 如果您将其存储为文本则不能

3.国际化

如果将其直接存储为文本,则国际化变得更加困难。现在您可以简单地从语言文件中获取句子并填写变量

于 2013-08-04T03:15:30.177 回答
0

数据会随着时间的推移而改变,还是固定不变?

如果数据可以更改,最好将它们存储在数据库中,这样您就不必不断更改 PHP 代码,只需根据需要更新数据库中的数据。

如果数据是固定的,那么只需将其存储在 PHP 中。也许您可以将其存储为数组并根据需要访问记录。

$data = array (1 => 'i am one', 2 => 'i am two', 3 => 'etc');
echo "{$data[1]}"; // will output 'i am one'
于 2013-08-04T03:12:25.890 回答
0

感谢您的澄清!如果方向/常量永远不会改变,您可以使用常量数组 & 和 PHP 中的几个函数从 UI <-> 内部 & 数据库值对它们进行编码/解码。

如果自然没有数值或半数字顺序,我可能更愿意将它们编码为 CHAR(1) 或短 VARCHAR 常量。在数据库中更易读为“N”、“S”、“E”、“W”等。

我将此方案用于记录状态和软删除方案——活动“A”、保留“H”、已删除“D”。(记录被标记为“D”已删除和隐藏,而不是从数据库中永久删除。)

OTOH 用于“工作流”类型的活动,在一个地方我使用数字来跟踪 WORKFLOW_STATE ——因为状态可以被视为大致升序。

如果方向/常量可能会随着时间的推移偶尔发生变化,但需要应用程序代码支持——它们也可以被视为常量。例如:税种。没有代码并且知道如何计算它,您无法实现新的“税收类型”。

如果 OTOH 值可能会更频繁地更改或添加,并且没有应用程序代码更改,那么它们应该是配置/或维度表。例如:税率、城市。您可以为已存在的税种实施新的或更改的百分比税率,而无需更改代码。

于 2013-08-04T03:40:40.627 回答