English 中文(简体)
是否应在数据库表中为每一行提供独一无二的补贴,否则没有独特的钥匙?
原标题:Should one generate a unique id for each row in a database table that otherwise has no unique keys?

我正在设计一个MySQL数据库,以便开始与病人的医疗记录合作。 我有几张没有独特钥匙的表格:健康状况、能量、家庭历史等。 例如,<代码>标识/代码> 表格可能包含以下领域:patient_id,med_name,usage_dates/code>,dosage<>/code>,/2007/5>。 唯一得到保障的独特关键是所有领域。

网上应用可以方便地向特定病人检索这一数据,方法是选择patient_id,但除非有可能在有多个用户的数据库内节省点人浏览量,否则会把我作为编辑或删除本表的浏览器。 房舍管理处必须选择每个领域的价值,以便找到正确的增长。 从我对数据库的了解程度来看,我认为,在大型数据库中,数据库可能效率低下。

建立一个有身份证号码的新领域,作为这些表格的主要关键,是否比我更高效,这完全没有必要?

最佳回答

你们总是能够添加一个简单的数字主要钥匙(例如,我sql auto_increment),这样,指定经营实体就能够以每个行一个独一无二的识别标志来结束。 如果你在外国关键关系中不得不使用表格,则复合主要钥匙是一种严重的疼痛,迫使你把每个主要组成部分都列入所有加入/科索沃统计局的规格。 相比之下,增加一个简单的主要关键因素使你无法在FK/join关系周围穿过这个一地。

我建议:

patients (id, name, ....)
meds (id, brand, name, ...)
patient_meds (patient_id, med_id, dosage, ...)
问题回答

是的,这将被称为“合成钥匙”,我肯定会增加一个,可能仅仅是一个非盟驻欧洲办事处。 如果你做的话,它将更简单(更快)地更新。

我认为,国际发展研究中心几乎总是是一个好的想法。 它保证了你可以用来独特地在你的数据库中确定一行的一栏。 我还认为这是一个好的想法,因为它能够更快地回答你提出的问题,因为一个表格的主要关键是指数化,因此,如果你根据独特的国际发展专栏选择,那么MySQL确实不得不通过所有各行搜寻,以找到你重新寻找的人。 它确切知道到哪里去,你的询问会更快。

是的,这是“最佳做法”。 除更新外,它还删除了某些物品,而且某些物品也更加快。

许多第三方工具依赖独特的主要关键。





相关问题
SQL SubQuery getting particular column

I noticed that there were some threads with similar questions, and I did look through them but did not really get a convincing answer. Here s my question: The subquery below returns a Table with 3 ...

please can anyone check this while loop and if condition

<?php $con=mysql_connect("localhost","mts","mts"); if(!con) { die( unable to connect . mysql_error()); } mysql_select_db("mts",$con); /* date_default_timezone_set ("Asia/Calcutta"); $date = ...

php return a specific row from query

Is it possible in php to return a specific row of data from a mysql query? None of the fetch statements that I ve found return a 2 dimensional array to access specific rows. I want to be able to ...

Character Encodings in PHP and MySQL

Our website was developed with a meta tag set to... <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> This works fine for M-dashes and special quotes, etc. However, I ...

Pagination Strategies for Complex (slow) Datasets

What are some of the strategies being used for pagination of data sets that involve complex queries? count(*) takes ~1.5 sec so we don t want to hit the DB for every page view. Currently there are ~...

Averaging a total in mySQL

My table looks like person_id | car_id | miles ------------------------------ 1 | 1 | 100 1 | 2 | 200 2 | 3 | 1000 2 | 4 | 500 I need to ...