タグ付けされた質問 「primary-key」

キーとは、テーブル内で一意になり、nullにできない属性のセットです。

8
複合主キーを正しく作成する方法-MYSQL
これは、私が作業している激しいセットアップの全体的な単純化です。table_1また、table_2どちらもIDとして自動インクリメントサロゲート主キーがあります。info両方の情報を含むテーブルがあるtable_1とtable_2。 table_1 (id, field) table_2 (id, field, field) info ( ???, field) とinfoのIDの複合の主キーを作成するかどうかを決定しようtable_1としていtable_2ます。これを行うとしたら、どれが最も理にかなっていますか? (この例では、ID 11209とID 437を組み合わせています) INT(9)11209437 (これがなぜ悪いのか想像できます) VARCHAR (10) 11209-437 DECIMAL (10,4)11209.437 または、他の何か? これをMYSQL MYISAM DBの主キーとして使用しても問題ありませんか?


14
INTとVARCHARの主キーの間に実際のパフォーマンスの違いはありますか?
MySQLの主キーとしてINTとVARCHARを使用する間に測定可能なパフォーマンスの違いはありますか?VARCHARを参照リストの主キー(米国の州、国コードなど)として使用し、同僚がINT AUTO_INCREMENTをすべてのテーブルの主キーとして使用することを避けたいのですが。 ここで詳しく説明するように、私の議論は、INTとVARCHARのパフォーマンスの違いは無視できるということです。INTの外部キー参照はすべて、参照を理解するためにJOINを必要とするため、VARCHARキーは情報を直接表示します。 それで、この特定のユースケースとそれに関連するパフォーマンスの問題の経験がある人はいますか?

19
代理キーと自然キー/ビジネスキーの比較[終了]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、事実と引用で回答できるようにします。この投稿を編集。 6年前休業。 この質問を改善する ここで再び行きます、古い議論はまだ起こります... ビジネスキーを主キーとして使用した方がよいでしょうか、それとも、ビジネスキーフィールドに一意の制約がある代理ID(つまり、SQL Server ID)を使用した方がよいでしょうか。 理論を裏付ける例や証拠を提示してください。

11
自動インクリメントの主キーを既存のテーブルに挿入する
主キーもauto_increment列もないテーブルを変更しようとしています。主キー列を追加する方法は知っていますが、主キー列にデータを自動的に挿入できるかどうか疑問に思っていました(DBに既に500行あり、IDを指定したいのですが、手動で行いたくありません)。 。何かご意見は?どうもありがとう。
157 mysql  primary-key 

9
エンティティフレームワークとSQL Serverビュー
私が話す自由がないいくつかの理由により、Sql Server 2005データベースのビューを次のように定義しています。 CREATE VIEW [dbo].[MeterProvingStatisticsPoint] AS SELECT CAST(0 AS BIGINT) AS 'RowNumber', CAST(0 AS BIGINT) AS 'ProverTicketId', CAST(0 AS INT) AS 'ReportNumber', GETDATE() AS 'CompletedDateTime', CAST(1.1 AS float) AS 'MeterFactor', CAST(1.1 AS float) AS 'Density', CAST(1.1 AS float) AS 'FlowRate', CAST(1.1 AS float) AS 'Average', CAST(1.1 AS float) AS …

3
SQLiteの主キーにインデックスは必要ですか?
SQLiteテーブルで整数列が主キーとしてマークされている場合、その列に対してもインデックスを明示的に作成する必要がありますか?SQLiteは主キー列のインデックスを自動的に作成するようには見えませんが、目的に応じておそらくインデックスを作成しますか?(私は常にその列を検索します)。 文字列の主キーの場合、状況は異なりますか?

5
SQL-多対多テーブルの主キー
この質問は、この質問のコメントを読んだ後に出てきます。 データベース設計 多対多のテーブルを作成する場合、2つの外部キー列に複合主キーを作成するか、自動インクリメントサロゲート "ID"主キーを作成し、2つのFK列(およびおそらく一意の制約)?いずれの場合も、新しいレコードの挿入/再インデックス付けのパフォーマンスにどのような影響がありますか? 基本的に、これ: PartDevice ---------- PartID (PK/FK) DeviceID (PK/FK) 対これ: PartDevice ---------- ID (PK/auto-increment) PartID (FK) DeviceID (FK) コメンターは言う: 2つのIDをPKにすることは、テーブルがディスク上で物理的にその順序でソートされることを意味します。したがって、(Part1 / Device1)、(Part1 / Device2)、(Part2 / Device3)を挿入すると、(Part 1 / Device3)データベースはテーブルを分割し、最後のテーブルをエントリ2と3の間に挿入する必要があります。多くのレコードでは、レコードが追加されるたびに数百、数千、または数百万のレコードをシャッフルする必要があるため、これは非常に問題になります。対照的に、自動インクリメントPKを使用すると、新しいレコードを最後まで追加できます。 私が質問している理由は、代理の自動インクリメント列がない複合主キーを常に実行する傾向があるためですが、代理キーの方が実際にパフォーマンスが高いかどうかはわかりません。

3
UUIDの最大文字長
Oracleデータベースの主キーとしてUUIDを使用し、VARCHARの適切な最大文字長を決定しようとしています。どうやらこれは36文字ですが、これよりも長いUUIDが生成されていることに気づきました-最大60文字です。誰かがUUIDの適切な最大文字長を知っていますか?
115 primary-key  uuid 

2
SQLで複合主キーを定義するにはどうすればよいですか?
SQLで2つのフィールドで構成される複合主キーを定義するにはどうすればよいですか? PHPを使用してテーブルなどを作成しています。私は、テーブル名を作成したいvotingフィールドでQuestionID、MemeberIDとvote。また、複合主キーはフィールドQuestionIDとで構成されますMemberID。 どうすればよいですか?

9
複数の列を主キーとして使用する理由(複合主キー)
この例はw3schoolsからの引用です。 CREATE TABLE Persons ( P_Id int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255), CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName) ) 私の理解では、両方の列(P_IdおよびLastName)は一緒にテーブルの主キーを表しますPersons。これは正しいです? なぜ誰かが単一の列ではなく複数の列を主キーとして使用したいのですか? 特定のテーブルで主キーとして一緒に使用できる列の数はいくつですか?

11
SQL主キーとインデックス
データベースにID行(int)が主キーとして設定されているとしましょう。IDを照会することが多い場合は、IDにインデックスを付ける必要がありますか?または、それが主キーであることは、すでに索引付けされていることを意味しますか? 私が尋ねる理由は、MS SQL ServerではこのIDにインデックスを作成できるためです。これは、前述のとおり、これが私の主キーです。 編集:追加の質問-主キーをさらにインデックス化することは害を及ぼしますか?

3
MySQLの主キーの更新
user_interactions4つの列を持つテーブルがあります。 user_1 user_2 type timestamp 主キーは(user_1,user_2,type) に変更したい(user_2,user_1,type) だから私がしたことは: drop primary key ... add primary key (user_2,user_1,type)... そして出来上がり... 問題は、データベースがサーバー上にあることです。 したがって、主キーを更新する前に、すでに多くの重複が侵入しており、それらは継続的に侵入しています。 何をすべきか? 私が今したいのは、重複を削除して最新のものtimestamp(テーブルの列)を保持することです。 そして、どういうわけか、もう一度主キーを更新します。
103 mysql  primary-key 

8
外部キーを主キーとして使用しても問題ありませんか?
2つのテーブルがあります。 ユーザー(ユーザー名、パスワード) プロフィール(profileId、gender、dateofbirth、...) 現在、私はこのアプローチを使用しています。各プロファイルレコードには、Userテーブルにリンクする外部キーとして「userId」という名前のフィールドがあります。ユーザーが登録すると、プロファイルレコードが自動的に作成されます。 私は私の友人の提案と混同しています:として「はuserId」フィールドを持っている外国人と主キーと「プロファイルID」フィールドを削除します。どちらのアプローチが優れていますか?

12
ADO.NET Entity Framework:更新ウィザードはテーブルを追加しません
私は新しいADO.Netエンティティデータモデルを追加し、私のプロジェクトに、使用の更新ウィザードをモデルにテーブルを追加します。選択した5つのテーブルがデザイン画面に追加されました。他の2つのテーブルは追加されません。ウィザードでそれらを選択して[完了]をクリックしますが、デザイン画面には表示されません。 これはバグですか、それともテーブルを(設計上)モデルに追加できない状況がありますか? 更新:XML(* .edmx)は問題を明らかにします。 <!--Errors Found During Generation: warning 6013: The table/view 'FooBar.dbo.Roles' does not have a primary key defined and no valid primary key could be inferred. This table/view has been excluded. To use the entity you will need to review your schema, add the correct keys and uncomment …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.